- ベストアンサー
javascriptとflash(as3)の連携
javascriptからflash(as3)を操作する http://www.openspc2.org/reibun/QuickReferenceActionScript/etc/013/ こちらのサイトのサンプルが,非常に参考になるのですが私はas2でなくas3を使っています。as3の場合,どこをどのように変えたらサンプルとして動かすことができるのでしょうか? 分かる方がいたら,詳細を教えて下さい。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ActionScript 3.0 では ExternalInterface.addCallbackの引数は2つです。 また戻り値もありません(voidです)。 さらに _rotation などというプロパティも(既存では)存在しません。 さらに this のスコープも全く違います。 書かれていらしゃるページのスクリプトは ActionScript 3.0 設定で動作するはずがありません。 というわけで↓ 「javascriptからflash(as3)を操作する - Yahoo!知恵袋」 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1380797983
その他の回答 (1)
- masa2468
- ベストアンサー率50% (4/8)
as3でやってみましたが普通にコンパイルできて動きます。 http://livedocs.adobe.com/flash/9.0_jp/ActionScriptLangRefV3/flash/external/ExternalInterface.html にもあるようにこの関数は3.0でも変わってません。 タイムラインで書くのがお好き出ない場合はクラスで下のように書いてください package { import flash.display.MovieClip; import flash.external.ExternalInterface; import flash.text.TextField; public class Main extends MovieClip { public var info_txt:TextField; public var ufo_mc:MovieClip; public function Main() { // constructor code if (flash.external.ExternalInterface.available) { infoObj = flash.external.ExternalInterface.call("getBrowserInfo"); info_txt.text = "appName:" + infoObj.name + "\n"; info_txt.text = info_txt.text + ("platform:" + infoObj.platform); ok = flash.external.ExternalInterface.addCallback("rotate",ufo_mc,rotate); if (! ok) { info_txt.text = info_txt.text + "addCallbackに失敗しました"; }// end if } else { info_txt.text = "ExternalInterfaceは利用できません"; }// end else if } private function rotate(amount) { this._rotation = this._rotation + amount; return (this._rotation); }// End of the function } }
お礼
わざわざクラスのほうでも答えて下さりありがとうございます。タイムラインを使っていることも書いておくべきだったかもしれません。この度は回答ありがとうございました。
お礼
回答ありがとうございました。知恵袋のほうの回答がとてもわかりやすく実際やってみて動かすことができました。