2 Stimmen

Starling FrameWork für die Arbeit mit Klassen, die natives DisplayObject verwenden

Ich versuche Greensock LoaderMax in einem Starling Framework Projekt zu verwenden, aber da Starling viele eigene Klassen hat, wie kann ich es mit anderen Klassen arbeiten lassen, die die native Klasse verwenden?

Exp:

package
{
    import flash.display.Sprite;
    import flash.events.Event;
    import starling.core.Starling

    [SWF(width="1280",height="800",frameRate="60",backgroundColor="#002143")]

    public class Main extends Sprite
    {
        private var mStarling:Starling

        public function Main():void
        {
            mStarling = new Starling(Game, stage)
            mStarling.antiAliasing = 1
            mStarling.start()
        }
    }
}

package
{
    import com.greensock.events.LoaderEvent;
    import com.greensock.loading.display.ContentDisplay;
    import com.greensock.loading.SWFLoader;
    import starling.display.Sprite;
    import starling.events.Event;

    public class Game extends Sprite
    {       
        private var queue:SWFLoader
        private var mm:ContentDisplay

        public function Game():void
        {
            if (stage)
                init()
            else
                this.addEventListener(Event.ADDED_TO_STAGE, init)
        }

        private function init(e:Event = null):void
        {
            queue = new SWFLoader("MainMenu.swf", {onComplete: completeHandler})
            queue.load()
        }

        private function completeHandler(e:LoaderEvent):void
        {
            mm = queue.content
            addChild(mm)
        }   
    }
}

gibt den Fehler zurück:

 Error: Implicit coercion of a value of type com.greensock.loading.display:ContentDisplay to an unrelated type starling.display:DisplayObject.

4voto

Jevgenij Dmitrijev Punkte 2218

Votre MainMenu.swf Die Hauptklasse muss extend starling.display.Sprite

da sie eine andere Struktur und etc... Flash kann nicht umwandeln native Sprite zu Starling Sprite.

dann nach Abschluss des Ladevorgangs:

mm = queue.content as Sprite; // ( starlig )

wenn Sie noch die normalen DisplayObjects und Starling displayObjects verwenden möchten, müssen Sie sie in einem anderen mc / sprites, die verschiedene displayObjects erweitert platzieren.

Bühne

|...|

starling.display.Sprite -> Hier fügen Sie normale Starling-basierte Sprites / MovieClips hinzu

|...|

flash.display.Sprite -> hier fügen Sie native Sprites / MovieClips hinzu

CodeJaeger.com

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.

Powered by:

X