Ich habe 3 verschiedene MovieClips, die ich gleichzeitig über den Bildschirm bewegen muss. (Von unten nach oben) Wie kann ich das am besten machen, ohne eine Tweening-Klasse wie Caurina zu verwenden?
Danke für die Tipps.
Ich habe 3 verschiedene MovieClips, die ich gleichzeitig über den Bildschirm bewegen muss. (Von unten nach oben) Wie kann ich das am besten machen, ohne eine Tweening-Klasse wie Caurina zu verwenden?
Danke für die Tipps.
Sie könnten einen Ereignislistener zum Elterncontainer der Anzeigeobjekte hinzufügen, der auf das Ereignis Event.ENTER_FRAME
hört. Bei jedem Event.ENTER_FRAME
-Ereignis vermindern Sie einfach die y
-Eigenschaft der Anzeigeobjekte wie im folgenden Beispiel.
package
{
import flash.display.Sprite;
import flash.events.Event;
[SWF(width="600", height="500")]
public class Main extends Sprite
{
private var _squares:Vector.;
public function Main():void
{
if (stage) init();
else addEventListener(Event.ADDED_TO_STAGE, init);
}// end function
private function init(e:Event = null):void
{
removeEventListener(Event.ADDED_TO_STAGE, init);
_squares = new Vector.();
var redSquare:Square = new Square(0xFF0000, 100);
redSquare.x = 0;
redSquare.y = 400;
addChild(redSquare);
var greenSquare:Square = new Square(0x00FF00, 100);
greenSquare.x = 300;
greenSquare.y = 300;
addChild(greenSquare);
var blueSquare:Square = new Square(0x0000FF, 100);
blueSquare.x = 500;
blueSquare.y = 100;
addChild(blueSquare);
_squares.push(redSquare, greenSquare, blueSquare);
addEventListener(Event.ENTER_FRAME, onEnterFrame);
}// end function
private function onEnterFrame(e:Event):void
{
for each(var square:Square in _squares)
{
if (square.y > 0) square.y -= 5;
}// end for
}// end function
}// end class
}// end package
import flash.display.Sprite;
internal class Square extends Sprite
{
public function Square(color:uint, size:Number)
{
graphics.beginFill(color);
graphics.drawRect(0, 0, size, size);
graphics.endFill();
}// end function
}// end function
Ich denke, es wäre einfacher für Sie, wenn Sie einfach die Tweening-Plattform von Greensock's verwenden würden.
Sie können sie im Flash-IDE mit Frames und Tweenings animieren. Sie können sie auch programmatisch selbst animieren. Platzieren Sie jeden Filmclip am unteren Bildschirmrand, schreiben Sie etwas Code, der Ihre Filmclips ein wenig nach oben bewegt, und rufen Sie diesen Code regelmäßig auf (Verwendung von Timer, EnterFrame-Ereignislistener oder setInterval). Hören Sie auf, diesen Code aufzurufen, wenn alle Filmclips oben angekommen sind (Verwendung von Timer.stop(), removeEventListener oder clearInterval). Ich sehe nicht ein, warum Sie das tun müssten, da es viele Tweening-Bibliotheken gibt, die das alles für Sie erledigen.
CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.