HOME > natural science メンバー > 遠藤 理平 > 備忘録

外部ファイルから変数を読み込んで利用する

文責:遠藤 理平 (2007年10月 8日) カテゴリ:備忘録(17)

現在の日付と応援団員数がリアルタイムにカウントされる掲示板を製作


製作ページ:応援団のページ

【ステップ1】
PHPを用いて、現在の日付と応援団員数のカウント数を、ファイル(num.txt)に書き出す。

SWFファイルで外部ファイルから変数を受け取るためには「変数名=値」の形である必要がある。

/*-- MYSQL内にある応援団リストから、応援団員IDを抜き出す。--*/
$_query = "SELECT * FROM ●●● ";
$result = mysql_query( $_query, $db ) or die( "SQL文の実行に失敗しました" );
$userIDs = array();
while( $row = mysql_fetch_object( $result ) ){
  $userIDs[$sqlJ] = rtrim($row -> userID_C);
}
/*-- ファイルへの書き出し--*/
$date = date("Y") . " " . date("m") . " " . date("d");
$file = "num.txt";
touch($file);
chmod($file, 0777);
$fp = fopen($file, 'w');
flock($fp, LOCK_EX);
$new = "num=" . count($userIDs) ."&date=" .$date;  //「変数名」=「値」&「変数名」=「値」
fputs($fp, $new);
flock($fp, LOCK_UN);
fclose($fp);

【ステップ2】
FLASHでレイヤーを設定する

【ステップ3】
外部ファイルから変数を受け取る

ダイナミックテキストのインスタンス名を上記のように設定する。
外部ファイル(num.txt)から日付(変数名:date)と応援団員数(変数名:num)をSWFファイル内の変数として読み取る。

【ステップ4】
ActionScriptをラインタイムのactionレイヤーに記述する

数字が0から応援団員数まで、徐々に加速度を減らしながら増やしていくためのスクリプト。


var change:Array = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9");  //半角数字を全角数字へと変換するための配列
var n:Number;
var maxNum:Number; //応援団員数
var num:Number = 0;
my_lv = new LoadVars();
my_lv.onLoad = eload;
function eload() {
  date_txt.text = my_lv.date;  //「date」が外部ファイルで指定されている変数名
  return my_lv.num;
}
my_lv.load("num.txt");

/*-- 1秒間で12回のループで計算を行う(fpsが12の場合) --*/
_root.onEnterFrame = function() {  
  maxNum = parseInt(eload());
  if (maxNum>0) {
    num = maxNum-(maxNum-num)/1.1;
    numa = Math.round(num);
    numb = "";
    numa = String(numa);
    if (isFinite(numa.charAt(0))) { //半角数字を全角をへと変換
      numb += change[numa.charAt(0)];
    }
    if (isFinite(numa.charAt(1))) {
      numb += change[numa.charAt(1)];
    }
    if (isFinite(numa.charAt(2))) {
      numb += change[numa.charAt(2)];
    }
    if (isFinite(numa.charAt(3))) {
      numb += change[numa.charAt(3)];
    }
    if (isFinite(numa.charAt(4))) {
      numb += change[numa.charAt(4)];
    }
    if (isFinite(numa.charAt(5))) {
      numb += change[numa.charAt(5)];
    }
    member_txt.text = numb;
  }
};

サンプルファイル

supporters-1.fla (144KB)
num.txt・・・読み込みようのファイル
※「supporters-1.fla」 と 「num.txt」は同じフォルダ内におく。



▲このページのトップNPO法人 natural science トップ

▲このページのトップNPO法人 natural science トップ