4

actionscript 3を使用して、フラッシュのステージ上のビットマップをどのように参照しますか?

フラッシュのステージにビットマップがあり、ムービーの最後で、ムービーがループする前に、シーケンスの次のビットと交換したいと思います。私のライブラリには、クラス名img1 / img2/img3のアクションスクリプト用にエクスポートされた3つの画像があります。これが私のフラッシュのレイヤーの設定方法です。

layer 5 : mask2:MovieClip
layer 4 : img2:Bitmap
layer 3 : mask1:MovieClip
layer 2 : img1:Bitmap
layer 1 : background:Bitmap

ムービーの最後で、img1をimg2と交換したいので、ムービーはシームレスにループします。次に、理想的には、画像の最後に到達するまでimg2(レイヤー4)をimg3と交換します。

しかし、(デザイン時に)すでにステージに置かれている画像を参照する方法がわかりません。これを行う方法を知っている人はいますか?

エンドムービーは、うまくいけば、Webサーバーから動的に画像をロードし(私はこのビットのコードを持っています)、それらをimg1 / img2/img3と同様に表示します。

どんな助けでもいただければ幸いです。

編集:

@ 81bronco、これを試しましたが、インスタンス名はグラフィック用にグレー表示されています。ムービークリップとボタンでのみ実行できます。私はそれらをmoveclipに変え、新しいものを追加する前にmoveclipの画像をクリアすることで半分は機能しました(vanhornRFが提案したものよりも単純なものを使用して)が、マスクが画像をキックするときに奇妙な理由でクリアしましたマスクアニメーションのために戻ってきます。

4

4 に答える 4

3

ステージ上の何かを参照するには、ステージインスタンスに名前を付ける必要があります。ライブラリ内のシンボルにクラス名を付けるのではありません。

ステージ上のアイテムをクリックして、プロパティパネルを確認します。アイテムの寸法の入力ボックスのすぐ上にテキスト入力ボックスがあるはずです。そこに名前を入力します。

コード内の他の場所で、ステージ上のそのアイテムをインスタンス名で参照できます。

于 2008-09-04T13:17:18.693 に答える
1

次のようになります。

imageHolder.removeChild( imageIndex )

また

imageHolder.removeChildByName( imageName )

それとその後

imageHolder.addChild( newImage )
于 2008-09-04T10:49:42.560 に答える
0

Re0slessさん、これらのアイテムをステージから削除すると、イベントリスナー、タイマー、ローダーがアタッチされていますか?これらのいずれかにより、オブジェクトがフラッシュのメモリに残り、適切に削除されない可能性があります。また、アイテムを削除するだけでなく、おそらくそれを無効にしてみてください。場合によっては、参照をクリアして適切に破棄できるようにするのに役立ちます。

もちろん、ある時点でアイテムを削除しても、将来のフレームからもアイテムが削除されないようなばかげたこともありますが、実際にはそうではないと思います。

于 2008-09-04T18:42:56.977 に答える
0

私はおそらくあなたのドキュメントクラスでこのようなことをするでしょう

for(var i:int=0; i<numChildren; i++){
    trace(getChildAt(i),"This is the child at position "+i);
}

私はまだフラッシュIDEでコーディングしており、そのデバッガーはほとんどの場合動作するのが非常に苦痛であり、変数をトレースする方が簡単なので、これを行うのは、forループを使用して現在のアイテムのオブジェクト名を出力することができますステージ上で、またはデバッガプログラムを使用してオブジェクトも検索します。

子があり、ステージ内で実際にどのインデックスにあるかがわかったので、getChildAt(int)を呼び出して子を参照し、removeChildAt(int)、addChildAt(displayObject、int)、swapChildrenAt(int、int)を実行できます。 )。これらの引数のintは、traceステートメントによって返されたインデックス位置を表し、displayObjectは、ステージまたは親DisplayObjectに追加したいものを表すだけです。

これらの4つのコマンドを使用すると、ステージ上にあるムービークリップを自由に再配置して、シームレスに遷移するように見せることができます。

@ 81broncoステージ上に多数のアイテムが存在することになった場合の混乱を避けるために、アセットを一意に参照する場合は、ステージ上でアセットに名前を付ける必要があります。

于 2008-09-04T18:02:30.473 に答える