私の主なASでは、ステージにもかかわらず、MovieClipをコンテナとして使用しています。 別のASファイルでは、Containerを参照として追加するだけでなく、addChild(箇条書きなど)を追加したいと思いますが、コードの記述方法は実際にはわかりません。別のAS3ファイルでムービークリップへの参照をリンクするにはどうすればよいですか?
私が現在の(サブ)ASでaddChildだけを動作させているのですが、それはremoveChildの問題です。
私の主なASでは、ステージにもかかわらず、MovieClipをコンテナとして使用しています。 別のASファイルでは、Containerを参照として追加するだけでなく、addChild(箇条書きなど)を追加したいと思いますが、コードの記述方法は実際にはわかりません。別のAS3ファイルでムービークリップへの参照をリンクするにはどうすればよいですか?
私が現在の(サブ)ASでaddChildだけを動作させているのですが、それはremoveChildの問題です。
はあなたがあなたのメインクラス内のコンテナを持っていて、別のクラスからアクセスしたい....
を私は右のそれを得るかどうかを知りませんが、右のことですか?私はあなたが必要なものを推測
は、あなたがあなたのメインクラスのあなたのMovieClipにYOUR_REFERENCE_VARを割り当てる必要があり、この
Globals.as // you name it...
package {
public class Globals extends Object {
public static var YOUR_REFERENCE_VAR:MovieClip; // This is a static var
}
}
ようになりGlobals.asです。プロジェクトのどこにいても、そのMovieClipにアクセスできます。
package {
import Globals.as;
import flash.display.Sprite;
public class GameEngine extends Sprite {
public function GameEngine() {
addEventListener (Event.ADDED_TO_STAGE, _onAddedToStage);
}
private function _onAddedToStage (evt:Event):void {
removeEventListener (Event.ADDED_TO_STAGE, _onAddedToStage);
//When you to access that MovieClip you access it like this
Globals.YOUR_REFERENCE_VAR.alpha = 0.5;
}
}
}
今、あなたは、私はこのことができます願っています。この
var spr:Sprite = new Sprite();
Globals.YOUR_REFERENCE_VAR.addChild (spr);
//Remove the child
Globals.YOUR_REFERENCE_VAR.removeChild (spr);
ようにaddChild/removehildを使用しています。
参照によってムービークリップを渡すことができます。ここに簡単な例があります:
package {
import flash.display.MovieClip;
import flash.display.Sprite;
public class Main extends Sprite {
public function Main() {
//create your movie clip
var movieClip:MovieClip = new MovieClip();
//if your MovieClip is in the Flash IDE library setup an export name and do
//var flasLibraryMovieClip : YourMovieClipExportName = new YourMovieClipExportName()
//add your movie clip to the display list
addChild(movieClip);
//instantiate your second class
//and pass the movie clip to the class constructor
var test : Test = new Test(movieClip);
}
}
}
package {
import flash.display.MovieClip;
import flash.display.Sprite;
public class Test extends Sprite {
public function Test(movieClip : MovieClip) {
//do stuff with the movie
}
}
}
ありがとうございました^^それは私を助けます。 –
しかし小さな問題です^^ "多くのASファイルからaddChildを使ってaddChildの順序を制御するにはどうすればいいですか?T_T –
addChildを使用すると、その子は常に表示リストの先頭に移動します。特定の子のインデックスを変更するには、setChildIndex(yourChild、whatIndex)を使用します。numChildrenを使用している子の総数を取得できることに注意してください。 setChildIndex(yourChild、numChildren-1); – Dimitris