我可以从Flex/AS3内部调用什么,它会告诉我flex-app/web页面是在本地文件系统内执行还是从web服务器(localhost或某个远程服务器)。希望这是明确的。如果Javascript中有某些东西是可以接受的,但是一些AS3函数当然更可取。确定是否从网络服务器调用
回答
中的应用类有一个属性:URL
URL:字符串[只读]
语言版本:ActionScript 3.0
产品版本:Flex 4个
运行时版本:Flash Player 10,AIR 1.5
来自此应用程序的SWF文件加载的URL。
实施
公共职能得到URL():字符串
你可以使用ExternalInterface
获取应用程序的当前URL,并评估该字符串的方案:
文件:///
的http://
https://开头
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
creationComplete="creationCompleteHandler(event)">
<fx:Script>
<![CDATA[
import mx.events.FlexEvent;
protected function creationCompleteHandler(event:FlexEvent):void
{
trace(String(ExternalInterface.call(" function(){ return document.location.href.toString();}")));
}
]]>
</fx:Script>
</s:Application>
它太奇怪了 - 我想关于现在 - 不知道是否所有的浏览器一定会返回“文件:”如果被服务的文件。 – Mark 2012-04-05 04:58:59
一些可以从flash.system.Capabilities之类验证此功能的纯ActionScript测试会很好。安全政策也应该发挥作用。不确定这种实现在您的环境中对您的工作有多可靠,但最初似乎是可行的。 – 2012-04-05 05:06:01
如果没有更好的发布,我会将其标记为答案。如果只是在FlashplayerSA本身进行测试,猜测它不起作用。我需要它的原因是因为根据我的经验,如果trustContent设置为“True”,如果以“file:”运行SWFLoader将无法正常工作。如果有什么地方可以在本地文件系统中放置一个crossdomain.xml文件,它可以工作,但我还没有找到它 - 在C:\或任何地方。 trustContent必须是false或SWFLoader不会在本地文件系统中运行。任何人都知道我在那里失踪。 – Mark 2012-04-05 05:11:37
- 1. 从网络服务器EMAIL
- 2. 确定致电网络服务的服务器
- 3. 从jQuery调用.Net网络服务
- 4. 从网络服务器确定iTunes订阅的状态
- 5. 确定是否构建服务器
- 6. 网络应用服务器
- 7. 无法通过网络服务器使用网络服务
- 8. 确定Rails服务器是否从rake任务运行
- 9. 我的网络服务是否有效?
- 10. 定时器在Java/ATG - 网络服务调用
- 11. NowJs服务器到网络服务器
- 12. PowerShell远程调用。访问被拒绝从网络服务器
- 13. 从网络服务器调用c/C++库
- 14. ASMX网络服务调试
- 15. 网络服务器虚拟网络
- 16. 如何确定网络适配器是否是无线的?
- 17. 轮询网络以确定网络是否可达?
- 18. 自定义网络服务器缓存
- 19. 从网络编辑MySql服务器?
- 20. 从网络服务器加载图像
- 21. 安全网络连接(例如SSL)是否由Web服务器正确处理?
- 22. Android网络服务器
- 23. C# - 网络与服务器
- 24. API的网络服务器
- 25. 网络服务器认证
- 26. 从网站调用远程服务器
- 27. 调用网络服务时出错
- 28. AWS Lambda网络服务调用
- 29. 无法调用网络服务
- 30. 是否可以连接QT到网络远程服务器?
谢谢。之前使用过。忘了吧。 – Mark 2012-04-05 05:18:48