让我们烤点甜饼(做饼图)
成功地安装了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();
?>
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/ライセンス/
http://www.bkjia.com/PHPjc/315804.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/315804.html技術記事 PHP 用の Shockwave Flash サポートを正常にインストールしたら、Cookie を焼きましょう (そして円グラフを作成しましょう)。PHP を使用して Shockwave ファイルを作成できます。学習する最良の方法は、プログラムに直接参加することです...