0

as2で簡単なテスト例を作りました。これには、次のハンドラーを持つ 2 つのボタンが含まれます。

_根:

on (release)
{
    this.loadMovie("AS3.swf");      
}

_root.test.testmc:

on (release)
{
    test.testmc.loadMovie("AS3.swf");       
}

AS3.swf はビデオ プレーヤーです (YouTube as3 API を使用)。_root にロードすると機能しますが、他の場所にロードしたい場合は機能しません。私はadobeからこれを検索して見つけました:

「ActionScript 1.0 または 2.0 で記述された SWF ファイルは、ActionScript 3.0 で記述された SWF ファイルをロードできません。つまり、Flash 8 または Flex Builder 1.5 以前のバージョンで作成された SWF ファイルは、ActionScript 3.0 SWF ファイルをロードできません。

このルールの唯一の例外は、ActionScript 2.0 SWF ファイルが以前にそのレベルのいずれにも何もロードされていない限り、ActionScript 2.0 SWF ファイルは ActionScript 3.0 SWF ファイルに置き換えることができるということです。ActionScript 2.0 SWF ファイルは、loadMovieNum() を呼び出して level パラメータに値 0 を渡すことでこれを行うことができます。」

上記の「例外規則」により、コードの「_root 部分」は機能していますか? 私はフラッシュを初めて使用します(なぜ私が as2 から始めたのか、残念ながら私の選択ではありません...)、私の考えが正しいかどうか疑問に思います。また、何らかの回避策 (AS3 のすべてを書き直す以外) がある場合は、お知らせください (ローカル接続の使用など)。

4

1 に答える 1

0

これを試して:

as2 のルート:

test.testmc.loadMovie("AS3.swf");

またはMCでas3プレーヤーが必要です:

this.loadMovie("AS3.swf");

2 番目のコードはtest.testmc.test.testmc既に "testmc" に配置されているため呼び出しているため、フル パスで参照する必要はありません。このような場合は、相対パスを使用することをお勧めします。

したがって、mc の内部では、 INSIDE testmcを検索する代わりにtestmc実行する必要があります。this.loadmovietest.testmc

それがあなたが探していたものであることを願っています。

于 2012-03-26T12:39:10.790 に答える