私は非常に単純なプログラムをコーディングしていました。このプログラムでは、円の周りを動かすことができ、ステージの矩形も移動できます。私はあなたがそれをドラッグしている間に円を矩形の前にしたいと思っていましたが、あなたがマウスを離したときに円が戻されました。getChildIndexをas3で使用してパブリック変数を設定するにはどうすればよいですか?
getChildIndexメソッドを使用してパブリック変数を設定する方法がわかりません。私はコードの残りの部分については本当に気にしません。私は主に、getChildIndexメソッドをパブリック変数で動作させることができるかどうかに興味があります。
package code
{
import flash.display.MovieClip;
import flash.events.MouseEvent;
import flash.events.Event;
import flash.display.Sprite;
public class Main extends MovieClip
{
public var myCircleIndex:int = getChildIndex(myCircle);
public function Main()
{
myCircle.addEventListener(MouseEvent.MOUSE_DOWN, mouseClicking);
stage.addEventListener(MouseEvent.MOUSE_UP, mouseReleased);
}
public function mouseClicking(e:MouseEvent): void
{
myCircle.startDrag();
setChildIndex(myCircle, numChildren-1);
}
public function mouseReleased(e:MouseEvent): void
{
myCircle.stopDrag();
setChildIndex(myCircle, myCircleIndex);
}
}
}
私はステージで直接ムービークリップとして作成したインスタンス( "myCircle")を使用しています。
私は最初に設定したpublic varに問題があります。私はmyCircleの子インデックスを取得できませんが、同じ行を関数内に置くと動作します。
私は、最後の行にmyCircleのインデックス番号を直接置くことができます(そしてpublic var myCircleIndexを消去することができます)。しかし、getChildIndexをクラスのpublic varに使用する方法があるとわかりました。
クラス内のpublic変数でgetChildIndexをどのように使用しますか?
あなたは、正方形の後ろに円を入れてやらなければならないことははaddChild(四角)またはaddChildAt(円、0を行うのリリースであります); –
あなたは私の意見で変数を追跡しようとすることで事態を複雑にしています。舞台裏でフラッシュを並べ替えましょう。 –
もう少し精巧で、正方形のすぐ後ろに円を置いておきたい場合は(100のレイヤーがあり、正方形がレベル12にありますが、どのレベルが正方形かわからない場合) addChildAt(circle、getChildIndex(square)-1); ' –