ホームページ  >  記事  >  バックエンド開発  >  Flashを使ったグラフィカルデータ(2)_PHPチュートリアル

Flashを使ったグラフィカルデータ(2)_PHPチュートリアル

WBOY
WBOYオリジナル
2016-07-21 16:05:08967ブラウズ

让我们烤点甜饼(做饼图)
成功地安装了PHP地Shockwave Flash支持后,就可以用PHP创建Shockwave文件了。学习的最好方法就是直接跳到程序去,所以下面就让我们看看程序。第一个文件包括怎样使用类的示例代码,同时也显示了如何将一个Flash文件嵌入到HTML文档中。


// include class needed for flash graph
include("class.pie.flash.php");

mysql_connect ("localhost", "root", "");

$query = "SELECT DISTINCT city_name, COUNT(city_id)
FROM city
GROUP BY city_name;";

$result = mysql_db_query ("hermes",$query);

while ($row = mysql_fetch_array ($result)) {
$city_counts[] = $row["COUNT(city_id)"];
$city_names[] = $row["city_name"];
}

mysql_free_result ($result);

// Instantiate new object
$graph = new flash_pie($city_counts, "city.swf");

// set graph title (should not exceed about 25 characters)
$graph->pie_title("City Results", 30);

// set graph legend
$graph->pie_legend($city_names);

// show graph
$graph->show();

// free resources
$graph->close();

?>  










type="application/x-shockwave-flash" width=600 height=300>


  




class flash_pie {

// クラス変数

// いくつかのグローバルカラーを設定します
var $r_arr = array(0.1, 1, 0, 1, 0, 1, 0.388235294, 0.4, 0.388235294、0.929411765);
var $g_arr = array(1, 0, 0, 1, 1, 0, 0.8, 0.4, 0.8, 0.439215686);
var $b_arr = array(0.25, 0, 1, 0, 1, 1, 1, 0.4, 1, 0.043137255);  

var $パーセント;

function flash_pie($values, $this_file) { //コンストラクターを開始します
// コードをブラウザに直接書き出すには、コンテンツ ヘッダーを設定し、「php://stdout」を使用します
//swf_openfile ("php://stdout "、700、250、30、1、1、1);
//header("Content-type: application/x-shockwave-flash");

swf_openfile ($this_file, 1000, 450, 30, 1, 1, 1);

// Flash ムービーのビューポートを設定します
swf_ortho2 (-400, 300 , -90, 250);  

// 円グラフに使用するフォントを選択します
swf_definefont(10, "Mod");

// パーセント/スライスの配列の合計を取得します
while(list($key,$val) = each($values)) {
$sum = $sum + $val;  
}

for ($i=0; $i // 必要な大きさを計算し、
// すべてのスライスを描画します
if ($i = = 0) {
// 最初のスライスのパラメータを設定します
$begin = 0;
$val = $values[$i]/$sum;
$end = $val*360;
swf_translate(-200, 0, 0);
} else {
// 1 つおきのスライスのパラメータを設定します
$begin = $end;
$val = $values[$i]/$sum;
$end = $end + $val*360;
}

// スライスを追加する関数呼び出し
$objID = 1+$i*10;
$this->show_slice($i, $objID, $begin, $end);

// すべてのラベルのパーセント配列をまとめる
$this->percents[$i] =round($values[$i]/$sum*100);            
}

} //end flash_pie

function show_slice($i, $objID, $begin, $end) {
// スライスを描画し、フレームに配置します
swf_addcolor($this->r_arr[$ i], $this->g_arr[$i], $this->b_arr[$i], 1);

swf_startshape($objID);
swf_shapefillsolid(0, 0, 0, 1);
swf_shapearc(0, 0, 100, $begin, $end);
swf_shapecurveto(0, 0, 0, 0);
swf_endshape($objID);

swf_pushmatrix();
swf_placeobject($objID, 1);
swf_popmatrix();
swf_showframe();
}


function pie_legend($labels) {
// 凡例とラベルを描画し、フレームに配置します
for ($i=0; $i swf_addcolor($this ->r_arr[$i]、$this->g_arr[$i]、$this->b_arr[$i]、1);

swf_definerect($i+1000, 1, 0, 20, 20, 0);
if ($i == 0) {
swf_translate(120, 75, 0);
} else {
swf_translate(0, 20, 0);
}
swf_placeobject($i+1000, 1);

swf_translate(0, 5, 0);
unset($label);
$label = $labels[$i];
$label .= " (";
$label .= $this->パーセント[$i];
$label .= " パーセント)";
if ($i==0) {
$width = (swf_textwidth($label)/4)+30;
} else {
$width =round(swf_textwidth($label)/2)+30;
}
$this->pie_text($i-1000, "$label", 15, $width, 0);
swf_translate(-$width, 0, 0);
}
swf_translate($width, 30*count($labels), 0);
}


function pie_text($id, $text, $size, $x, $y) {
// フォントサイズ ($size) で ($x,$y) にテキスト ($text) を描画する単純な関数)
// テキストの色を黒に設定します
swf_addcolor(0,0,0,0);

// フォントのサイズと傾きを設定します
swf_fontsize($size);
swf_fontslant(0);

// フレーム内にテキストを定義、配置、配置します
swf_definetext($id, "$text", 1);
swf_translate($x, $y, 0);
swf_placeobject($id, 1);
}

function pie_title($text, $size) {
// タイトルを描画してラインナップを設定する簡単な関数
// $text は約 25 文字を超えてはいけません
$this->pie_text(99, $text, $サイズ、0、150);
swf_translate(0, -300, 0);
}

function show() {
// フレームを表示
swf_showframe();
}


function close() {
// バッファをフラッシュしてムービーを返します
$data = swf_closefile(1);
}

} // クラス flash_pie を終了

?>  

注意: 生成された SWF ファイルは、必ずしもファイルに書き込む必要はありませんが、直接ブラウザに返すことができます。 1 つの Flash ファイルを HTML 文書に挿入することも考えられます。Flash ファイルをブラウザに直接出力することを選択した場合は、ヘッダー コンテンツ タイプを次のように設定できます:
header("Content-type: application/x-shockwave-flash")
および swf_openfile(filename",.. .) swf_openfile("php://stdout",...) に変更します。

詳細については、リンク:
http://www.php.net/manual/ref.swf.php swf_* PHP 関数の説明
http://reality.sgi.com/grafica/flash/ PHP 用の swf ライブラリをダウンロードします
http://openswf.org その他の Flash ツールと情報
http://www.macromedia.com/software/flash/open/ライセンス/

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/315804.html技術記事 PHP 用の Shockwave Flash サポートを正常にインストールしたら、Cookie を焼きましょう (そして円グラフを作成しましょう)。PHP を使用して Shockwave ファイルを作成できます。学習する最良の方法は、プログラムに直接参加することです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。