投稿

ラベル(ActionScript)が付いた投稿を表示しています

相対Pathで別swfを読み込むと失敗することがあるので現在のURLを取得する

相対Pathで指定すると現在(object, embed tagが貼りつけてある)htmlが表示されているURLからのPathになる。swfの置き場所がどこになるのか分からないので、Mainのswfが置いてあるURLを取得する方法を調査。 Action Script 3.0 次のような感じ。 var current_url = root.loaderInfo.loaderURL; this._swf_url = current_url.substr(0, current_url.lastIndexOf("/")); this._pageLoader.load(new URLRequest(this._swf_url + "/hoge.swf"));   < Related Posts > FirefoxのFlashFirebugでFlash内のTraceを表示する AS3からAS2の外部swfを読みこんでEventを取得したい 初めてのFlash。お役立ちLink集

AS3からAS2の外部swfを読みこんでEventを取得したい

他の人が作ったflashを組み合わせたときのMemo. 環境はAdobe Flash Professional CS5, Action Script 3.0 まず外部swf fileを読み込むのはLoader を使えば簡単。下記を参考に。 flash.display.Loader (ActionScript 3.0) ActionScript3.0 勉強部屋 外部swfファイルの読み込みと制御 ハマったのはここから。やりたいのは AS2のswfのbuttonをclickしたら、そのEventを親swfでcatchして処理をしたい(できるだけ他の人が作ったAS2 SWFは触りたくない)。 基本的にAS2のswf(AVM1 SWF)とAS3のswf(AVM2 SWF)はやり取りできないらしい。 Reference Guide 。 試したこと 親swfで透明なbuttonを設置する。 → 子swfのmouse overのEventが発生しなくなる Loaderで読み込む際にAVM1をAVM2に変換するForcibleLoaderを試す。 こちら 。 → 読み込んだ子swfの動きが変になる stage.addEventListener(MouseEvent.CLICK, func); loader.addEventListener(MouseEvent.CLICK, func); という感じで、Click Eventを全て取得して、座標で判断。 → 子swfのbutton上ではClick Eventが発生しない。   結論、LocalConnectionを使わないと実現できない = 子swfを改修しないといけない。 LocalConnectionの使い方は下記Blogを参考に。 ActionScript3.0 LocalConnectionで2つのSwfを連携させたい。 - 雨と風と快晴と 2.0 ちゃんと「おもじない」をしないと動作しなかった。 さらに途中で強制終了すると、次起動したときに下記Errorが出力されて止まる。 Connect failed because the object is already conne...

[Flash] Coding Guide(コーディング規約) for ActionScript

Adobeのwikiにそれらしいのがある。 Coding Conventions - Flex SDK - Adobe Open Source (英語) Adobe Flex Coding Guidelines(PDF) if文のあとに改行して括弧( { )するのが、個人的に好きじゃない。   < Related Posts > 初めてのFlash。お役立ちLink集