2016-05-04 3 views
1

Ich versuche zu machen und Akkordeon Stil Menü ich Flash. Ich kann die Bildschirme auf und ab bewegen, aber ich kann den Inhalt nicht anzeigen. Ich habe jeden Bildschirm als Videoclip mit einer Maske in der Seite aufgestellt. Ich kann nicht die Maske bekommen mit „wenn‘ statment zu öffnen. Irgendwelche Ideen?Tween-Code auf einer Maske in Actionstipt3 funktioniert nicht

import fl.transitions.Tween; 
import fl.transitions.easing.*; 

screen01.addEventListener(MouseEvent.CLICK, clickHandler);  
screen02.addEventListener(MouseEvent.CLICK, clickHandler); 
screen03.addEventListener(MouseEvent.CLICK, clickHandler); 
screen04.addEventListener(MouseEvent.CLICK, clickHandler);  


function clickHandler(event:MouseEvent):void 
{ 
    if(event.target == screen01) 
    { 
     if(screen01.Makeing_MC.height <=72) 
     { 
      var tweenMask0:Tween = new Tween(screen01.Makeing_MC, "y", Strong.easeOut, screen01.Makeing_MC.height, screen01.Makeing_MC.height + 250, 2, true); 
     }   
     var test0:Tween = new Tween(screen01, "y", None.easeNone, screen01.y, 182, 1, true); 
     var test1:Tween = new Tween(screen02, "y", None.easeNone, screen02.y, 539, 1, true); 
     var test2:Tween = new Tween(screen03, "y", None.easeNone, screen03.y, 625, 1, true); 
     var test3:Tween = new Tween(screen04, "y", None.easeNone, screen04.y, 710, 1, true); 
    } 
    else if(event.target == screen02) 
    { 
     var testa:Tween = new Tween(screen01, "y", None.easeNone, screen01.y, 182, 1, true); 
     //var maskmove1:Tween = new Tween(screen01.Makeing_MC, "height", Strong.easeOut, screen01.Makeing_MC.height, screen01.Makeing_MC.height - 250, 1, true); 

     var test5:Tween = new Tween(screen02, "y", None.easeNone, screen02.y, 265, 1, true); 
     var test6:Tween = new Tween(screen03, "y", None.easeNone, screen03.y, 625, 1, true); 
     var test7:Tween = new Tween(screen04, "y", None.easeNone, screen04.y, 710, 1, true); 
    } 
    else if(event.target == screen03) 
    { 
     var test8:Tween = new Tween(screen02, "y", None.easeNone, screen02.y, 265, 1, true); 
     var test9:Tween = new Tween(screen03, "y", None.easeNone, screen03.y, 347, 1, true); 
     var test10:Tween = new Tween(screen04, "y", None.easeNone, screen04.y, 710, 1, true); 
    } 
    else if(event.target == screen04) 
    { 
     var test11:Tween = new Tween(screen02, "y", None.easeNone, screen02.y, 265, 1, true); 
     var test12:Tween = new Tween(screen03, "y", None.easeNone, screen03.y, 347, 1, true); 
     var test13:Tween = new Tween(screen04, "y", None.easeNone, screen04.y, 431, 1, true); 
    } 
} 
+0

PS: Bevor Sie zu weit gehen mit ... Ich hatte eine Maske vorgeschlagen, aber ich meinte, Sie brauchen nur eine einzige Maske für das gesamte Menü **. Da jede Seite mit diesem Maskenbereich sichtbar ist, positionieren Sie jede Seite in der Nähe der unteren Seite, sodass nur ein kleiner anklickbarer Abschnitt sichtbar ist, wenn Sie darauf klicken, dass Tweens nach oben oder unten gehen, um im Maskenbereich "mehr" sichtbar zu sein. Denken Sie an die Maske ein Betrachtungsfenster, dann schieben Sie einfach nach oben/unten alle Elemente, was Sie vollständig gesehen werden möchten und gleiten Sie sie (mit Wirkung der Akkordeon-Menü) –

Antwort

2

Sie hatte die richtige Idee. Es sieht aus wie Sie die Maske zusätzlich zu der Position des MovieClip-, um die Größe versucht.

die Struktur Ihrer Bühne Unter der Annahme, ungefähr so ​​aussieht ...

0: MainTimeline 
    0: screen01 (MovieClip) // screen01.mask = Makeing_MC? 
     0: Makeing_MC (Shape) // <-- our mask? 
     1: txt (TextField) 
    1: screen02 
     0: Makeing_MC (Shape) 
     1: txt (TextField) 
    2: screen03 
     0: Makeing_MC (Shape) 
     1: txt (TextField) 
    3: screen04 
     0: Makeing_MC (Shape) 
     1: txt (TextField) 

dann die Höhe der Maske animieren, und bewegen des Mutter Clip sollte Ihr Ziel ausreichen.

import fl.transitions.Tween; 
import fl.transitions.easing.*; 

// We'll keep clip specific information (nice and tidy) in here. 
var accordion:Array = [ 
    {"clip":screen01, "height":357, "y":182}, 
    {"clip":screen02, "height":360, "y":265}, 
    {"clip":screen03, "height":363, "y":347}, 
    {"clip":screen04, "height":360, "y":431} 
] 


// Loop through and register each clip with mouse events. 
for each (var screen:Object in accordion) { 
    screen.clip.addEventListener(MouseEvent.CLICK, clickHandler); 
} 


function clickHandler(e:MouseEvent):void { 
    // This is the size of the open accordion. 
    // We'll add this to each consecutive clip's "y" property after the clicked one. 
    var offsetY:int = 0; 

    // Loop through the accordion array 
    for each (var screen:Object in accordion) { 
     // Set the position of the clip to the "y" value from the appropriate entry, adding our offset. 
     screen.tween = new Tween(screen.clip, "y", None.easeNone, screen.clip.y, screen.y + offsetY, 1, true); 

     // If this is the clip we clicked on... 
     if (screen.clip == e.target) { 
      offsetY = screen.height; // Add the opened accordion's height property to the offset 
      // and animate open the mask. 
      screen.maskTween = new Tween(screen.clip.Makeing_MC, "height", Strong.easeOut, screen.clip.Makeing_MC.height, screen.height, 1, true); 
     } else if (screen.clip.Makeing_MC.height != 15) { 
      // Otherwise, if its size is not 15, animate it to its "closed" position. 
      screen.maskTween = new Tween(screen.clip.Makeing_MC, "height", Strong.easeOut, screen.clip.Makeing_MC.height, 15, 1, true); 
     } 
    } 
} 
+0

Genau wie die OP wird Ihr Tween GC sein, bevor sie sogar beenden können . – BotMaster

+0

Ich habe noch nie native Tweens verwendet (ich bevorzuge Greensock). Ich werde mit einer Korrektur aktualisieren. – Atriace

+0

Atriace- Ich habe ein paar Sachen von Greensock gesehen und es scheint toll, aber ich bin immer noch Student. Ich bin auch mehr auf der Designerseite des Codierens, also versuche ich, Grundlagen des Blitzes zu lernen, bevor ich mit den seitlichen Codierungswerkzeugen rumstolziere. –