我可以从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. 从网络服务POST到服务器
- 3. 确定致电网络服务的服务器
- 4. 从jQuery调用.Net网络服务
- 5. 如何确定一个网站是否使用亚马逊的网络服务?
- 6. ajax调用 - 网络服务
- 7. 从网络服务器确定iTunes订阅的状态
- 8. 亚马逊网络服务是否为个人服务器合理定价?
- 9. 网络应用服务器
- 10. 确定是否构建服务器
- 11. 网络服务器 - 如何指定服务器使用
- 12. 无法通过网络服务器使用网络服务
- 13. 我的网络服务是否有效?
- 14. 确定Rails服务器是否从rake任务运行
- 15. 无法启动网络服务器上的调试网络服务器配置不正确
- 16. 确定服务器是否为打印服务器
- 17. NowJs服务器到网络服务器
- 18. 定时器在Java/ATG - 网络服务调用
- 19. 从网络服务器运行系统调用
- 20. PowerShell远程调用。访问被拒绝从网络服务器
- 21. 从网络服务器调用c/C++库
- 22. ASMX网络服务调试
- 23. 网络服务器虚拟网络
- 24. 如何确定网络适配器是否是无线的?
- 25. 轮询网络以确定网络是否可达?
- 26. 自定义网络服务器缓存
- 27. 从网络服务器上将
- 28. 从网络服务器加载图像
- 29. 自动从网络服务器
- 30. 从Arduino网络服务器读取值
谢谢。之前使用过。忘了吧。 – Mark 2012-04-05 05:18:48