Hacer que Starling FrameWork funcione con clases que utilizan DisplayObject nativo
-
28-10-2019 - |
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.
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