ネイティブDisplayObjectを使用するクラスで動作するスターリングフレームワークを作成する

StackOverflow https://stackoverflow.com/questions/8395141

質問

Starling FrameworkプロジェクトでGreensock LoaderMaxを使用しようとしていますが、Starlingには独自のクラスがたくさんあるので、ネイティブクラスを使用している他のクラスで動作させるにはどうすればよいですか?

経験:

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

エラーを返します:

 Error: Implicit coercion of a value of type com.greensock.loading.display:ContentDisplay to an unrelated type starling.display:DisplayObject.
役に立ちましたか?

解決

君の MainMenu.swf メインクラスはする必要があります extend starling.display.Sprite

それらは異なる構造などであるため...フラッシュはネイティブスプライトを星のスプライトに変換することはできません。

その後、荷重が完了した後:

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

通常のDisplayObjectsとStarling DisplayObjectsを使用する場合は、異なるDisplayObjectsを拡張する別のMC /スプライトに配置する必要があります。

ステージ

|...|

starling.display.sprite->ここでは、通常のスターリングベースのスプライト / Movieclipsを追加します

|...|

flash.display.sprite->ここでネイティブスプライト / Movieclipsを追加する

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top