Question

J'essaye d'utiliser Greensock LoaderMax sur un projet Starling Framework, mais comme Starling a beaucoup de sa propre classe, comment puis-je le faire fonctionner avec d'autres classes qui utilisent la classe native?

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)
        }   
    }
}

renverra l'erreur:

 Error: Implicit coercion of a value of type com.greensock.loading.display:ContentDisplay to an unrelated type starling.display:DisplayObject.
Était-ce utile?

La solution

votre classe principale MainMenu.swf doit extend starling.display.Sprite

car ils sont une structure différente et etc ... flash ne peut pas transformer un sprite natif en sprite starling.

puis après le chargement terminé:

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

si vous souhaitez toujours utiliser les DisplayObjects normaux et les DisplayObjects Starling, vous devez les placer dans un mc / sprites différent qui étend différents displayObjects.

étape

| ... |

starling.display.Sprite -> Ici, vous ajoutez des Sprites / MovieClips basés sur Starling normaux

| ... |

flash.display.Sprite -> ici vous ajoutez des Sprites / MovieClips natifs

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top