私はmovieClipボタンが入ったさまざまなmovieClipsを使用しています-すべてのMCはコードを介して挿入され、ステージには何もありません。ボタンのeventListenerがトリガーされるたびに、次の関数を呼び出し、次のmovieClipを行に追加してから、前に使用したMovieClipへの参照を削除します。
具体的には、パズルゲームを書いています。ゲームに入るたびに、ピースの1つを移動して、MovieClipの戻るボタンを押します。次に同じゲームに入るときは、そのままのピースが表示されます。 movieClipを使用して、元の位置に再起動します。私はここで何が間違っているのですか?ここでのポイントは、各関数をクリックして戻ったときに、ゲームを開始したときの参照を再開する方法です。ありがとう。
public function start1()
{
//start screen
addChild(first1);
first1.start(button name).addEventListener(MouseEvent.CLICK, start);
}
public function back1(even:MouseEvent)
{
removeChildAt(numChildren - 1); //want to remove who ever called back1
start1();
}
public function start(even:MouseEvent)
{
/choosing num of pieces
removeChildAt(numChildren - 1); //want to remove first1
addChild(level);
level.back.addEventListener(MouseEvent.CLICK, back1);
level.sixpieces.addEventListener(MouseEvent.CLICK, sixLevel);
}
//level choosing
public function sixLevel(even:MouseEvent)
{
removeChildAt(numChildren - 1); //want to remove level
addChild(clevel);
clevel.back.addEventListener(MouseEvent.CLICK, back1);
clevel.easy.addEventListener(MouseEvent.CLICK, function(){Slevel=1;six(even);});
clevel.med.addEventListener(MouseEvent.CLICK, function(){Slevel=2;six(even);});
clevel.hard.addEventListener(MouseEvent.CLICK, function(){Slevel=3;six(even);});
}
//game itself
public function six(even:MouseEvent)
{
num=6;
row1=0;
row2=1;
row3=2;
row4=3;
removeChildAt(numChildren - 1);
addChild(full1);
if(Slevel==1)
{
full1.time1.visible=false;
full1.full.visible=true;
full1.frame1.visible=false;
}
else
if(Slevel==2)
{
full1.full.visible=false;
myTimer = new Timer(1000,60);
}
else
if(Slevel==3)
{
full1.full.visible=false;
myTimer = new Timer(1000,30);
}
if(Slevel!=1)
{
Slevel=4;
}
full1.back.addEventListener(MouseEvent.CLICK, back1);
for(a=0;a<6;a++)
{
this.locarrs[3][a].addEventListener(MouseEvent.MOUSE_DOWN, Move);
this.locarrs[3][a].addEventListener(MouseEvent.MOUSE_UP, stopMove);
}
}