討論區: 公開討論 (Thread #26781)

変数の書き換え (2010-07-08 17:04 by kemono256 #51833)

こんにちは

以前"swfed.soがPHPExtensionとして認識されない"で投稿させて頂いたkemono256です。

画像の差し替えで重宝しているのですが、
変数の書き換えができるようになれば、最早敵なし!!
と思っているのですがw

変数の書き換えの対応は予定されていますでしょうか?

RE: 変数の書き換え (2010-07-08 19:02 by yoya #51839)

ご利用ありがとうございます。
暖かい言葉を頂けて嬉しいです。

変数を含むタグのデータ構造(DoAction 中の ActionByteCode)まで
は調べたのですが、(実は swfInfo で disasemble してます :-) )
分かり易い変数入れ替え API が思いつかずに手が止まっています。

少し勿体ない使い方ですが、replaceEditString で、
要望に応えられるかもしれません。

テキストツールで張り付けたオブジェクト(SWF的にはEditTextタグ)は
プロパティで (ActionScriptから参照可能な)変数名を指定できまして、
この変数のデータを swfed の replaceEditString で書き換えられます。

検討頂けると幸いです。
# 1 byte の凌ぎを削る Lite の世界では厳しいかもしれませんが

回覆: #51833

RE: 変数の書き換え (2010-07-08 19:13 by kemono256 #51840)

なるほど、そういうやり方がありましたか。
まぁ、容量的にはちょっとかさばりそうですねw

素早い回答ありがとうございました。
また、今後のverUP楽しみにしております。
回覆: #51839

RE: 変数の書き換え (2010-12-03 14:45 by yoya #54580)

大変お待たせしました。

入れ替えは難しいので、代わりに新たな変数を埋め込む
ファンクションを実験的に追加しました。
0.27 移行でお使い頂けます。

setActionVariables(array('foo' => 'baa'));
のようにすると、ActionScript 内で、
buz = foo のように受け取れますし、勿論、
foo をそのまま利用する事も出来ます。

期待通りに動かない等のご意見がありましたら
是非お願いします。

誰からも連絡がなければ、このまま採用しちゃいます :-)
回覆: #51840

RE: 変数の書き換え (2010-12-03 15:12 by kemono256 #54581)

こんにちわ、要望を受けて下さってありがとうございます。

本当は実験してから聞けば良いのですが、今すぐはちょっとできそうにないので聞かせていただきます。
また、当方PHPのほうは初心者以下なので、間違ってるかもしてませんが

>>setActionVariables(array('foo' => 'baa'));のようにすると、ActionScript 内で、buz = foo のように受け取れますし、勿論、foo をそのまま利用する事も出来ます。
foo = 'baa';として受け取り
その後はfooという変数は自由に扱えるという事よろしいですか?

また、as内部でfooという変数を使っていた場合その変数は上書きされるのでしょうか?
---------------------------
as内(実行前)
foo = "aaa";
---------------------------
SWF Editor
setActionVariables(array('foo' => 'baa'));
---------------------------
as内(実行後)
foo = "baa";
---------------------------

以上、実験してからお聞きすべきですが、気になりましたので・・・
回覆: #54580

RE: 変数の書き換え (2010-12-03 15:37 by yoya #54584)

> foo = 'baa';として受け取り
> > その後はfooという変数は自由に扱えるという事よろしいで
すか?

はい。そのような機能です。

> > また、as内部でfooという変数を使っていた場合その変数は
上書きされるのでしょうか?

この機能は難しいので今回は入れていません。

あくまで foo の値を PHP 側で初期化できる機能となります。

# ↑ しっくりくる言い回しを思いつけました。質問に感謝!
回覆: #54581

RE: 変数の書き換え (2010-12-03 15:52 by kemono256 #54585)

ご返答ありがとうございます。

>>setActionVariables(array('foo' => 'baa'));のようにすると、ActionScript 内で、buz = foo のように受け取れますし、勿論、foo をそのまま利用する事も出来ます。
>buz = foo;
ここの部分は単なる書き間違いですね、把握しました。

これで色々できそうです!!
回覆: #54584