0

特定の問題で問題があります。ゲーム、アプリケーションなど、さまざまなコンテンツをロードするメイン フラッシュ アプリケーションがあります。たとえば、ローダー アプリケーションがないと、コンテンツ ゲームで人を撃って殺しますが、ローダーでは同じゲームをプレイすると、弾丸が人に触れても何も起こりません。私はそれをうまく説明したいと思います))。なぜそれが起こるのですか?ありがとう、私は進みます

アップデート :

こんにちは Malte Köhrer さん、返信ありがとうございます。それは私を夢中にさせるだけです-答えはこのあたりのどこかにありますが、見逃されています)。これがコードです - Event.COMPLETE で、ロードされたコンテンツの位置を変更します。COMPLETE 中に実行される別の関数があり、配置が変更されたパーツを追加します。それらが以前ではなく onCOMPLETE に変更されることが重要です。あなたの親切な助けに感謝します。

var loader:Loader = new Loader();
addChild(loader);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadingFunc);
loader.load(new URLRequest(urlAdr));


function loadingFunc(event:Event):void
{

    var loaderInf:LoaderInfo = event.target as LoaderInfo;
    dispObj = loaderInf.loader;

    //dispObj.x = stage.stageWidth/2-loaderInf.width/2;  --------------- That how it was          before I changed root property
    //dispObj.y = stage.stageHeight/2-loaderInf.height/2;

    var mb:MovieClip = dispObj.loaderInfo.content as MovieClip; //----------- That how it's now
    mb.x = stage.stageWidth/2-loaderInf.width/2;
    mb.y = stage.stageHeight/2-loaderInf.height/2;

    //var app:App = new App(mb); This give the same resault as var mb:MovieClip = dispObj.loaderInfo.content as MovieClip;
}
4

1 に答える 1

0

ルートの使用を回避する方法は、タイムラインから次のようにアプリを初期化することです。

var app:App=new App(this);

その場合、ルートにあるか他の場所にあるかに関係なく、スクリプトを含むムービークリップへの参照をアプリに渡します。クラスがどのように見えるかの例を次に示します。

class App{
    public var appRoot:MovieClip=null;
    function App(appRoot:MovieClip){
        this.appRoot=appRoot:
    }
    function setHeadline(text:String):void{
         appRoot.textField.text=text;
    }
}

これで、ムービークリップへの参照が保存され、ルートに期待するものが含まれていないことを心配することなく、それを使用してすべてにアクセスできます(例:setHeadline()関数)。

于 2011-03-02T13:33:24.070 に答える