Pregunta

Estoy intentando usar Greensock LoaderMax en un proyecto de Starling Framework, pero dado que Starling tiene muchas clases propias, ¿cómo puedo hacer que funcione con otras clases que usan la clase nativa?

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

devolverá el error:

 Error: Implicit coercion of a value of type com.greensock.loading.display:ContentDisplay to an unrelated type starling.display:DisplayObject.
¿Fue útil?

Solución

su MainMenu.swf la clase principal necesita extend starling.display.Sprite

ya que son una estructura diferente y etc...flash no puede transformar un sprite nativo en un sprite estornino.

luego, una vez completada la carga:

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

Si aún desea utilizar los DisplayObjects y Starling displayObjects normales, debe colocarlos en un mc/sprites diferente que extienda diferentes displayObjects.

escenario

|...|

starling.display.Sprite -> Aquí agrega Sprites / MovieClips normales basados ​​en Starling

|...|

flash.display.Sprite -> aquí agrega Sprites / MovieClips nativos

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top