2

今天我试图获取我的 Flash 电影所在的 URL。

我在这里发现了一个类似的问题,它通过指向 Flash 的 LoaderInfo方法的链接得到了回答,但我不确定我是否在我的测试电影中正确使用它作为 textField:http: //leongaban.com/stackoverflow/getUrl /不显示网址

更新!工作代码

我所需要的就是这个: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;

我相对确定您正在创建的 loader 对象在您告诉它加载请求之前不会有 loaderURL(或做任何其他事情)。

于 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 回答