2012-03-31 8 views
0

私はフラッシュアプ​​リケーションを作成しました。このフラッシュアプ​​リケーションでは、ジグソーパズルが含まれています。アプリケーションは1つのタイムラインに書き込まれ、特定のフレームはアプリケーション内の異なるページとして使用されます。ドラッグアンドドロップの項目をドラッグして非表示にするにはどうすればいいですか?

問題は、ジグソーパズルのドラッグアンドドロップを移動すると、私が作成したジグソーパズルのフレームではなく、すべてのフレームにそのピースが表示されることです。

これらのドラッグアンドドロップ項目を他のフレームに表示させないようにするにはどうすればよいですか?

ジグソーパズルに使用したコードは次のとおりです。

var hitArray:Array = new Array(Tar1_mc,Tar2_mc,Tar3_mc,Tar4_mc,Tar5_mc,Tar6_mc); 
var dropArray:Array = new Array(Piece1_mc,Piece2_mc,Piece3_mc,Piece4_mc,Piece5_mc,Piece6_mc); 
var positionsArray:Array = new Array(); 

for (var i:int = 0; i < dropArray.length; i++) 
{ 
dropArray[i].buttonMode = true; 
dropArray[i].addEventListener(MouseEvent.MOUSE_DOWN, mdown); 
dropArray[i].addEventListener(MouseEvent.MOUSE_UP, mUp); 
positionsArray.push({xPos:dropArray[i].x, yPos:dropArray[i].y}); 
} 
function mdown(e:MouseEvent):void 
{ 
e.currentTarget.startDrag(); 
setChildIndex(MovieClip(e.currentTarget), numChildren - 1); 
} 
function mUp(e:MouseEvent):void 
{ 
var dropIndex:int = dropArray.indexOf(e.currentTarget); 
var target:MovieClip = e.currentTarget as MovieClip; 
target.stopDrag(); 
if (target.hitTestObject(hitArray[dropIndex])) 
{ 
    target.x = hitArray[dropIndex].x; 
    target.y = hitArray[dropIndex].y; 
} 
else 
{ 
    target.x = positionsArray[dropIndex].xPos; 
    target.y = positionsArray[dropIndex].yPos; 
} 
} 
reset_btn.addEventListener(MouseEvent.CLICK, backObjects); 
function backObjects(e:MouseEvent):void 
{ for(var i:int = 0; i < dropArray.length; i++){  
    if(dropArray[i].x == hitArray[i].x && dropArray[i].y == hitArray[i].y){   
     dropArray[i].x = positionsArray[i].xPos; 
     dropArray[i].y = positionsArray[i].yPos;  
    } 
} 
} 

ご協力いただきありがとうございます。

答えて

0

ゲームの作成時には、実際に外部クラスを使用してください。しかし、問題を解決するには、特定のフレームに行くときにステージから作品を削除することができます。ですから、彼らはあなたが以下のように書くことができ消えるしたいフレームに:あなたはしかし、戻ってこのフレームに来る必要があれば

for(var i:int = 0; i < dropArray.length; i++){ 
    if(this != null && this.contains(dropArray[i])){ 
    removeChild(dropArray[i]); 
    } 
} 

、あなたはそれぞれのパズルピースのvisiblabiltyプロパティを切り替えることができます。あなたは、ループスルーだろうが、ちょうどそうのようなvisibiltyを変更します

dropArray[i].visible = false; 
+0

おかげトラビスこれを大幅に – Martin1184

+0

うん、問題ありませんが認識されます。 – Travis

関連する問題