2016-04-06 12 views
2

Animate CC workframe Wie kann ich dieses Programm von Schleifen stoppen? Der Halt(); Funktion wird nicht funktionieren. Es ist kein Animationsclip, sondern ein Drag & Drop-Spiel. Da ich noch neu bei AS3 bin, würde ich es begrüßen, wenn jemand meine Frage mit Erklärungen beantworten würde. Vielen Dank!So stoppen Sie das Programm von der Schleife in Animate CC 2015

item1.objName = "circle"; 
item1.initX = item1.x; 
item1.initY = item1.y; 
item1.val = 0; 

item2.objName = "rectangle"; 
item2.initX = item2.x; 
item2.initY = item2.y; 
item2.val = 0; 

item3.objName = "triangle"; 
item3.initX = item3.x; 
item3.initY = item3.y; 
item3.val = 0; 


bin1.shape.alpha = 0; 
bin2.shape.alpha = 0; 
bin3.shape.alpha = 0; 

item1.buttonMode = true; 
item2.buttonMode = true; 
item3.buttonMode = true; 

item1.addEventListener(MouseEvent.MOUSE_DOWN, mousePress); 
item1.addEventListener(MouseEvent.MOUSE_UP, mouseRelease); 
item2.addEventListener(MouseEvent.MOUSE_DOWN, mousePress); 
item2.addEventListener(MouseEvent.MOUSE_UP, mouseRelease); 
item3.addEventListener(MouseEvent.MOUSE_DOWN, mousePress); 
item3.addEventListener(MouseEvent.MOUSE_UP, mouseRelease); 


//Mouse Events 

function mousePress(event:MouseEvent):void { 
    var item:MovieClip = MovieClip(event.target); 
    item.startDrag(); 
    item.scaleX = item.scaleY = .95; 
    var topPos:uint = this.numChildren - 1; 
    this.setChildIndex(item, topPos); 
    ilabel.itemName_txt.text = item.objName;  
} 


function mouseRelease(event:MouseEvent):void { 
    var item:MovieClip = MovieClip(event.target); 
    item.stopDrag(); 

    switch (item.objName) { 
case "circle" : 
     if (bin1.hitTestObject(item)){ 
     updateShape(item, bin1); 

     } 
     else{ 
     ilabel.info_txt.text ="WRONG! Hint: circle"; 
     item.scaleX = item.scaleY = 1 
     } 
break; 
case "rectangle" : 
     if (bin2.hitTestObject(item)) { 
     updateShape(item, bin2); 

     } 
     else{ 
     ilabel.info_txt.text ="WRONG! Hint: rectangle"; 
     item.scaleX = item.scaleY = 1 
     } 
break; 
    case "triangle" : 
if (bin3.hitTestObject(item)){ 
     updateShape(item, bin3); 

    } 
     else{ 
     ilabel.info_txt.text ="WRONG! Hint: Triangle"; 
     item.scaleX = item.scaleY = 1 
     } 
break; 
    default :; 
    } 

} 
function updateShape(item:MovieClip, bin:MovieClip):void { 
    ilabel.itemName_txt.text = ""; 
    item.scaleX = item.scaleY = 1; 
    item.visible = false; 
    ilabel.info_txt.text ="CORRECT! "; 
    bin.shape.alpha = 1; 
    item.val = 1; 
    resetShapes(); 
} 

function resetShapes(){ 
    if((item1.val == 1)&& (item2.val == 1) && (item3.val == 1)){ 

     item1.x = item1.initX; 
     item1.y = item1.initY; 
     item2.x = item2.initX; 
     item2.y = item2.initY; 
     item3.x = item3.initX; 
     item3.y = item3.initY; 

     bin1.shape.alpha = 0; 
     bin2.shape.alpha = 0; 
     bin3.shape.alpha = 0; 

     item1.visible = true; 
     item2.visible = true; 
     item3.visible = true; 

     item1.val = 0; 
     item2.val = 0; 
     item3.val = 0; 


     } 
    } 

    function checkGame():void { 
    if ((item1.scaleX = item1.scaleY = 1)&& (item2.scaleX = item2.scaleY = 1)&&(item3.scaleX = item3.scaleY = 1)) 
    { 

     ilabel.info_txt.text=" Well done!"; 
    } 



} 
+0

Was meinst du mit "Stop Looping"? Wenn Sie möchten, dass Ihre Maus-Interaktionen nicht registriert werden, entfernen Sie einfach die Ereignis-Listener ('item1.removeEventListener (MouseEvent.MOUSE_DOWN, mousePresse); item1.removeEventListener (MouseEvent.MOUSE_UP, mouseRelease);) wenn nötig. – Iansen

+0

Nachdem alle Gegenstände im Spiel korrekt zugeordnet wurden, endet das Spiel nicht dort, sondern wird von alleine neu gestartet. – CHIGGAJX

+1

Wie viele Frames hast du? Schreiben Sie Code im integrierten ActionScript-Editor? Poste einige Bilder davon, wie deine Timeline aussieht .... Normalerweise habe ich nur einen Frame und meine Skripte sind in externen Dateien. – Iansen

Antwort

0
function checkGame():void { 
    if ((item1.scaleX = item1.scaleY = 1)&& (item2.scaleX = item2.scaleY = 1)&&(item3.scaleX = item3.scaleY = 1)) 
    { 
    ilabel.info_txt.text=" Well done!"; 
    item1.removeEventListener(MouseEvent.MOUSE_DOWN, mousePress); 
    item1.removeEventListener(MouseEvent.MOUSE_UP, mouseRelease); 
    item2.removeEventListener(MouseEvent.MOUSE_DOWN, mousePress); 
    item2.removeEventListener(MouseEvent.MOUSE_UP, mouseRelease); 
    item3.removeEventListener(MouseEvent.MOUSE_DOWN, mousePress); 
    item3.removeEventListener(MouseEvent.MOUSE_UP, mouseRelease); 
} 

Dies wird den Benutzer in der Lage zu stoppen, etwas zu wählen. Wenn Sie beispielsweise einen Filmclip auf "item1" laufen lassen. Sie müssen item1.stop(); auch zur checkGame Funktion ...

Viel Glück!

Verwandte Themen