2

今日は、Flashムービーが置かれているURLを取得しようとしています。

ここで同様の質問を見つけました。これはFlashのLoaderInfoメソッドへのリンクで回答されましたが、テストムービーのtextFieldとして正しく使用されているかどうかはわかりません:http://leongaban.com/stackoverflow/getUrl / URLを表示しません

更新しました!ワーキングコード

私が必要としたのはこれだけでした: stage.loaderInfo.url:)

package {

import flash.display.Stage;
import flash.display.DisplayObject;
import flash.display.Sprite;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.events.Event;
import flash.text.TextField;
import flash.text.TextFieldAutoSize;
import FontsTest;

public class LoaderInfoExample extends Sprite 
{
    private var myTextField :TextField = new TextField();
    private var urlIs:String = "";

    public function LoaderInfoExample() {

        urlIs = stage.loaderInfo.url;
        trace(stage.loaderInfo.url);
        addEventListener(Event.ADDED_TO_STAGE, initHandler);
    }

    private function initHandler(event:Event):void {

        myTextField.defaultTextFormat = FontsTest.Arial14Bold;
        myTextField.border = true;
        myTextField.antiAliasType = flash.text.AntiAliasType.ADVANCED;
        myTextField.selectable = true;
        myTextField.mouseEnabled = true;
        myTextField.autoSize = TextFieldAutoSize.LEFT;
        myTextField.text = "Url is = "+urlIs;

        addChild(myTextField);
    }
}
}

http://leongaban.com/stackoverflow/getUrl/

4

3 に答える 3

7

私がこれを正しく理解しているなら、あなたはそれを少し間違っています。新しいローダーを作成する必要はありません。.swf は、ステージ上の独自の loaderInfo オブジェクトへの参照を保持します。

したがって、.swf ファイルの現在の場所を追跡したい場合は、次のようにします。

trace(stage.loaderInfo.url);

それは役に立ちますか?

于 2010-01-13T19:47:09.090 に答える
0

独自の URL を探している場合、DisplayObject クラスには、使用できる loaderInfo プロパティがあります。これを試して:

myLoader = this.root.loaderInfo;
urlIs = myLoader.loaderURL;

あなたが作成しているローダーオブジェクトは、リクエストをロードするように指示するまで、ローダーURLを持たない(または他のことをしない)ことは比較的確信しています。

于 2010-01-13T18:54:30.063 に答える
0

onAddedToStageの代わりにを行う必要がありますEvent.INIT

public function LoaderInfoExample() {
    addEventListener(Event.ADDED_TO_STAGE, initHandler);
}

そして使用するroot.loaderInfo

于 2010-01-13T18:59:06.513 に答える