公開された API 呼び出しを含むコンパイル済みコードの単なるライブラリである Flash コンポーネントがあります。通常、これは SWC または MXP として配布され、問題なく動作します。最近、クライアントが私のコンポーネントの使用に関心を示しましたが、彼らはすべての開発を MTASC のみで行っています。MTASC は SWC ファイルをサポートしていません。MTASC で動作するプリコンパイル済みコードを送信する良い方法はありますか? 元のソースコードを送ることはできませんが、他に方法があれば教えていただければ幸いです。ソースにアクセスできるので、必要に応じて再コンパイルできます。ありがとう!
1 に答える
私は答えを見つけましたが、私はもはやその仕事に就いておらず、目の前にコンピューター/プロセスがないため、これがまさにそのプロセスであるかどうかは100%確信が持てません. それはちょっとしたハックでした。
基本的には、SWC ファイルを解凍し、.swf ファイルと一連の .asi ファイルを取り出しました。
.asi ファイルは実際には単なる ActionScript ファイルですが、組み込みの定義、または実際に存在するもののプロトタイプまたはフットプリントのみが含まれています。その真髄はまだ .swf にあります。
したがって、これらすべての .asi ファイルの名前を .as に変更してから、それらを MTASC クラスパスに配置します。それらには定義が含まれているため、コンパイル時に「未定義の変数」または「未定義の関数」エラーが発生することはありません。あとは、loadMovie を使用して、実際の関数本体が定義されている SWF を取り込む必要があります。loadMovie が完了すると、すべての関数を使用できるようになります。
もちろん、唯一の注意点は、SWC から関数を呼び出す前に、その SWF がロードされるのを待つ必要があることです。
順を追って説明すると、次のようになります。
1.) SWC ファイルを解凍します。これは、WinZip または OS X 端末の unzip コマンドを使用して実行できます。 2.) .asi ファイルの名前を .as に変更します。 3.) 新しい .as ファイルを MTASC クラスパスに追加します。 SWC 関数は、SWF がロードされる前に呼び出されます 5.) コンパイル
これが私たちのやったことだと確信していますが、今は試してみる余裕がありません。
他にご不明な点がございましたら、お気軽にお問い合わせください。