今天我正在尝试获取我的Flash电影所在的网址。
我找到了a similar question here,这是用link to Flash's 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);
}
}
}
答案 0 :(得分:7)
如果我正确地理解了这一点,那你的做法有点不对劲。您不需要创建新的加载器 - .swf在舞台上保存对其自己的loaderInfo对象的引用。
因此,如果您想要追踪.swf文件的当前位置,请执行以下操作:
trace(stage.loaderInfo.url);
这有帮助吗?
答案 1 :(得分:0)
如果您拥有自己的URL,则DisplayObject类具有您可以使用的loaderInfo属性。试试这个:
myLoader = this.root.loaderInfo;
urlIs = myLoader.loaderURL;
我相信你正在创建的加载器对象在你告诉它加载请求之前不会有一个loaderURL(或做其他任何事情)。
答案 2 :(得分:0)
您需要onAddedToStage
代替Event.INIT
public function LoaderInfoExample() {
addEventListener(Event.ADDED_TO_STAGE, initHandler);
}
然后使用root.loaderInfo