setActionVariables 実装
SWFEditor で SWF にパラメータを埋め込むのに、現状、
テキストボックスを利用して頂いていますが、
ActionScript の変数を、直接的に埋め込みたいという要望があり、
↑↑これを真似て、実装してみました。
原理
変数名と代入する値の文字列を各々 Push Data して SetVariable する
ActionScript Byte Code のバイナリを生成して、
DoAction タグの形式で SWF の初めの方に挿入します。
プログラム
テスト
<?php $swf_filename = $argv[1]; $swfdata = file_get_contents($swf_filename); $obj = new SWFEditor(); $obj->input($swfdata); $variables = array('yoyakey' => 'yoyavalue', 'foo' => 'goo'); $obj->setActionVariables($variables); echo $obj->output();
結果
swfdump --full
[00c] 45 DOACTION ( 9 bytes) action: Push String:"yoyakey" ( 11 bytes) action: Push String:"yoyavalue" ( 0 bytes) action: SetVariable ( 5 bytes) action: Push String:"foo" ( 5 bytes) action: Push String:"goo" ( 0 bytes) action: SetVariable ( 0 bytes) action: End
懸念
- 挿入する場所は初めの方ですが、具体的な条件が絞り込めていません。
- とりあえず、FileAttribute よりは後にしてますが、コンテンツ系タグより前に置いて良いのかどうか。。
まず、iPhone に浮気してから Flash Lite が動く携帯が手元にないので、
誰かから借りないと確認出来なくて困るw
予定
SWF バイナリ的には期待通りですが、
実動作も期待通りなのが確認できたら、0.26 としてリリースします。