Faire fonctionner Starling FrameWork avec des classes qui utilisent DisplayObject natif
-
28-10-2019 - |
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.
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