風林火山

株や競馬や、アバンテ、巨人など、日々の活動や思うことを、東京からお届けします。

ActionScriptとPHPの連携

2010年02月04日 00時02分25秒 | ActionScript 3.0
今回は、PHPを使って、HTMLで呼び出すSWFをファイル名に応じて可変にして、
そのSWFでさらにFLVのファイル名を可変で呼び出すというチャレンジ。

イメージとしては、


aaa.php・・・HTMLファイル(PHPファイル)
 ↓
aaa.swf・・・PHPからファイル名(aaa)を受け取る
 ↓
aaa.FLV・・・swfからファイル名(aaa)を受け取る

だったけど、結局actionscriptでの自ファイル名取得がうまくいかなくて、

phpのパラメータ渡しで、SWFがパラメータを受け取り、
そのパラメータでFLV呼びだしという形。


PHP
---------------------------------------------
$path_info = pathinfo($_SERVER['PHP_SELF']);

$f_name=$path_info["filename"];
---------------------------------------------

HTML-----------------------
<param name="FlashVars" value="url=" />
embed src="aaa.swf" FlashVars="url="
type="application/x-shockwave-flash"
width="640" height="480" bgcolor="#ffffff"
pluginspage="http://www.adobe.com/go/getflashplayer_jp" />

-----------------------------



SWF
-----------------------------------
var flashVars:Object = this.loaderInfo.parameters;
var f_name=flashVars["url"];
var flv_name=f_name+".flv";
ns.play(flv_name);

------------------------------------

loaderオブジェクトをいったん配列に格納する

2010年01月29日 01時17分07秒 | ActionScript 3.0
先日作成したスクリプト、外部から画像読み込みの続き。


読み込んだ画像をランダムに表示させるというもの。


まず、乱数を発生させ、その都度ファイルを読み込んでくる、
という形で作った。

が、重い。

遅れが発生するし、なによりCPUに負荷がかかり、うなりをあげるパソ子。


というわけで、一度必要な画像をすべて読み込んで、

発生させた乱数に従って表示という形に変更。

結構試行錯誤したが、

loaderを別の配列にいったん格納してあげることで解決。

こんな感じで。

この場合は、10枚のナンバリングされた画像を使ってます。

var g=new Array();
for(i=1;i<=10;i++)
{
var url0 : URLRequest = new URLRequest("./test/"+i+".jpg");

// ローダーオブジェクトを作成し配置
var myLoader : Loader = new Loader();
myLoader.load(url0);
g[i]=myLoader;

}

配列の宣言をforの外に置くのがポイント。

あとは好きなものをaddChildしてあげればよいだけのこと。

鯖事情

2010年01月28日 02時18分23秒 | ActionScript 3.0
いろいろごちゃついて来たので、
サーバー借りてまとめっかな。

Y’s Empire復活の予感。


さて。


外部のJPEGを読み込んで表示させるスクリプトを作ってた。

addChidがうまくできないので、あきらめかけたその時。

LoaderがURLLoaderになってた・・・

そんだけ~!!!

ショックショック。


別アングル

2010年01月22日 23時47分57秒 | ActionScript 3.0
行き詰まったときは、パソコンから離れて考えてみるといい。

FLASHからPHPを見に行って、ランダムな戻り値を読み込む
スクリプトを作っていたが、Requestがキャッシュされているのか、
うまくいかない。

ふと道を歩いてるときに思いついた。

乱数をPHP側で発生させているからだめなのであって、
FLASH側で発生させてあげれば、キャッシュされてても
いけるんじゃなかろうか。

挑戦は続く。

図形の回転

2010年01月18日 22時21分16秒 | ActionScript 3.0
今日は基礎の基礎で、画像を回転させてみる。

ステージ上に■を書いて、こいつをシンボル(ムービークリップ)に変換。
インスタンス名はsikakuにする。

1フレームに1度回転させたいので、プログラムは、こうなる。


sikaku.addEventListener(Event.ENTER_FRAME,rolling);
function rolling(event:Event)
{
sikaku.rotation+=5;

}

①インスタンスに、イベントを設定する。

addEventListenerがイベントを設定しますよという合図。

Event.ENTER_FRAMEは、フレームごとにイベントが起こりますよという命令。

rollngは、rollingという命令を実行しますよということ。

ちなみに、このrollingは、自作関数で、
このあと設定する。

function rolling(event:Event)の{}の中に、具体的な動作を書き込む。

rollingの引数がなんで(event:Event)なのかは正直まだわかってない。


で動作内容としては、

rotationというすでにプログラム内で設定された関数を使い、

sikaku.rotation+=5;

とやると、1フレームに5℃回転する。

ことはじめ

2010年01月18日 00時26分15秒 | ActionScript 3.0
いま、ActionScriptを勉強中。

ActionScriptってなんぞや?って方のために説明しますと、
FLASHを動かすためのプログラムです。

昨年末に、とあるムービーをつくるために、
ちょこっとFLASHをかじったので、
ついでにすこし極めたいなと思い、
今年の目標に掲げました。

ちなみにあとはAjaxあたりも視野に入れてます。
こちらは、JavaScriptの一種で、
クライアントサイドスクリプトです。
非同期通信をしてくれるので、PHPなんかと
併用して、ページを更新しなくても
データを参照したりすることができる仕組み。



そんなこんなでASの話。

まず基本から。

キーボード入力した文字を、FLASH上に出力するスクリプトに挑戦。
その中で、入力したキーの取得は、KeyboadEventで取得できるものの、
それを格納する配列というか、変数の扱いが微妙にPHPとちがい、悩む。

PHPなら、.= (ドット+イコール)でできたのに・・・

結局、

インスタンス.appendText(文字列);

とやると、文字列を元の変数というかインスタンスに追加してくれるみたい。


夜明けは遠いぜよ。