6
A
回答
8
Stage有loaderInfo属性,它包含有信息的url属性,你正在寻找。您可以从Flex中的任何DisplayObject获取stage属性。
trace(stage.loaderInfo.url);
1
不在闪光灯内,afaik。你需要什么?可能有更好的方法来做到这一点。
+0
那么我正在构建一个自定义记录器类,它会将日志发送到一个脚本来保存。我正在做这个,所以我可以在其他项目中重复使用这个类。所以我希望这个类能够自动检测它正在运行的项目,因此它也可以记录它。 – 2009-12-22 20:57:04
1
可以使用loaderInfo.loaderURL
你SWF中的类的
例得到充分的路径和名称:
public class Main extends Sprite {
private function init():void {
removeEventListener(Event.COMPLETE, init);
var myUrl:String=loaderInfo.loaderURL;
var tmp:Array=myUrl.split("/");
var myName:String=tmp[tmp.length-1].split(".swf")[0];
}
public function Main() {
super();
if (stage)
init();
else
addEventListener(Event.COMPLETE, init, false, 0, true);
}
}
3
只是一个有用的注意事项:如果您加载一个SWF到另一个,加载(内部)的SWF将返回错误的结果,如果您使用loaderInfo.url
来尝试获取文件名。举例来说,像这样:
Path/To/Outer.swf/[[DYNAMIC]]/1
的相反:
Path/To/Inner.swf
当心!
这就是说,这里是我用它来获取当前SWF名称代码:
function SWFName(symbol:DisplayObject):String
{
var swfName:String;
swfName = symbol.loaderInfo.url;
swfName = swfName.slice(swfName.lastIndexOf("/") + 1); // Extract the filename from the url
swfName = swfName.slice(0, -4); // Remove the ".swf" file extension
swfName = new URLVariables("path=" + swfName).path; // this is a hack to decode URL-encoded values
return swfName;
}
1
事情已经在最近的版本中改变了一点,所以我给的Adobe Flash Builder的4.6答案(减速在浏览器中使用Flash,但你明白了)。
<s:Application ... applicationComplete="alertSwfUrl()">
<fx:Script>
<![CDATA[
import mx.core.FlexGlobals;
private function alertSwfUrl():void {
var a:LoaderInfo = FlexGlobals.topLevelApplication.stage.loaderInfo;
ExternalInterface.call('alert', a.url);
}
]]>
</fx:Script>
</s:Application
退房的LoaderInfo docs弄清楚如何使用与stage
相关的loaderInfo
对象。
相关问题
- 1. 从自己获取函数名称
- 2. PHP获取SWF文件的尺寸
- 3. 为你自己的文件命名
- 4. 创建自己的文件扩展名
- 5. 使用swf加载另一个swf文件的Flex Swfloader
- 6. 获取自己的位置
- 7. 提取SWF文件
- 8. 在flex中加载远程swf文件
- 9. 如何减少swf文件大小flex
- 10. flex vs cs3和swf文件大小
- 11. 通过android-ndk读取你自己的文件名?
- 12. 抓取/ XHR自己的文件
- 13. 获取文件名
- 14. 获取文件名
- 15. Flex 3:在swf文本区域控件中嵌入swf或图像文件
- 16. 使用Flex 4创建我自己的SWC文件?
- 17. 获取.swf API
- 18. Flex:从Flex swf加载xml
- 19. 获取文件的名称
- 20. 获取文件名的NSArray
- 21. C#中的任何简单的方法来获取自己的文件路径+文件名?
- 22. 在Flex SDK中自动生成SWF
- 23. 获取文件路径的文件名
- 24. 获取加密文件的文件名
- 25. 使用命令行将Flex CSS文件编译为SWF文件
- 26. Java JButton addActionListener并获取自己的名字
- 27. C++获取我自己的dll的CLSID
- 28. 检查自己的文件
- 29. 一个jar文件如何读取自己的资源文件?
- 30. 如何从Flex SWF中的ActionScript 1/2 swf接收事件?
谢谢..此外,我可以使用Application.application.stage.loaderInfo.url从非DisplayObject获取它,如果您尝试在Application.CreationComplete之前访问它,它也会给出一个错误。 – 2009-12-22 21:11:03
是的,直到FlexEvent.APPLICATION_COMPLETE事件被分派后才看起来舞台已经准备就绪。 – 2009-12-22 21:18:12