Frage

Lassen Sie uns sagen, dass ich eine Ressource-Datei, die mc1 mit 4 Frames in exportiert. Ich möchte eine neue MovieClip erstellen und einfügen Rahmen wie folgt aus:

mc2:flash.display.MovieClip = new flash.display.MovieClip()

mc1.gotoAndStop(2);
mc2.gotoAndStop(1);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(1);
mc2.gotoAndStop(2);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(2);
mc2.gotoAndStop(3);
mc2.currentFrame = mc1.currenctFrame
mc1.gotoAndStop(4);
mc2.gotoAndStop(4);
mc2.currentFrame = mc1.currenctFrame

[Bearbeiten] Weitere Details

Ich bin mit Flash-IDE nicht. Ich bin mit:

  • Inkscape (für SVG Generation)
  • swfmill (erstellen Asset-Dateien)
  • Haxe (erstellen Animationen)

Ich bin an dieser Stelle nicht versuchen, interaktive Spiele oder etwas zu bauen. Ich habe es geschafft, eine einfache Animation zu erstellen, in dem ein Hintergrund-Sprite dreht (und das ist es). Ich benutzte TimerEvents dies zu erreichen. Aber stattdessen würde ich wirklich in der Lage sein will ein MovieClip- zu konstruieren und einzelne Frames auf sie legen und sie dann auf der Schleife spielen.

Als Alternative kann ich eine MovieClip- erstellen und nur zeichnen auf sie programmatisch Bild für Bild. (Und dann in der Schleife natürlich spielen)

Im Grunde würde Ich mag Actionscript verwenden, um Inhalte zu generieren, anstatt swfmill XML (nicht der simple Dialekt, simple ist in Ordnung). Da ich ein Anfänger bin ich weiß nicht, was andere Informationen, die ich Ihnen geben kann. So erklären Sie mir bitte, wenn ich irgendwelche anderen Details liefern kann?

War es hilfreich?

Lösung

Ohne das Flash-IDE, macht es wenig Sinn bei der Verwendung gotoAndStop () etc.

Wie Sie nicht Ihre verschiedenen Assets auf verschiedenen Rahmen hinzufügen können, sollten Sie sie alle als Schichten hinzufügen, mit addChild (assetToAdd) und stellen Sie alle bis auf einen zu visible = false. Dann fügen Sie eine einfache Funktion wie folgt aus:

function showFrame(num:int):void
{
    for (var i:int = 0; i < numChildren; i++)
    {
       if (i == num)
       {
          getChildAt(i).visible = true;
       }
       else
       {
          getChildAt(i).visible = false;
       }
    }
}

Andere Tipps

Ich bin mir nicht bewusst, eine bequeme Art und Weise zu tun, was Sie zu tun versuchen. Ihr Beispiel wird nicht funktionieren, weil current eine schreibgeschützte Eigenschaft ist, auch alle es gibt eine ganze Zahl für die Bildnummer, die Daten nicht den tatsächlichen Rahmen bilden.

Mein Vorschlag, wenn Sie brauchen, um dynamisch den Rahmen neu zu sortieren, wäre, dass bestimmte MovieClip- in einer benutzerdefinierten Klasse zu wickeln, dass die gotoAndPlay (x), was auch immer Nummer übersetzt würden Sie wollen.

Dies ist jedoch möglicherweise nicht sehr nützlich sein, je nachdem, was Sie erreichen wollen, aber wenn Sie Ihre Frage ein wenig klären Ich bin sicher, dass wir mit einem richtigen Vorschlag kommen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top