Flex 本地安全策略问题
今天在做项目的时候遇到了一个问题,访问xml文件就是成功不了。看了看以前写过的代码都可以,而这个项目中为什么就不行了呢?仔细查看了目录,是百思不得其解啊。
错误信息:*** Security Sandbox Violation ***
Connection to file:///C|/loading.swf halted - not permitted from xxxx/data.xml。这个xml是在工程里面src目录下的。这个信息是在控制台中输出的。
于是我监听了Fault事件,事件描述大概如下:
Only local-with-filesystem and trusted local SWF files may access local resources.
于是使劲儿的Google,很多人都说用crossdomain.xml来解决。可根本没用,因为的xml文件是在本地的,且在工程的src目录下面。这时想起来在Compiler里可以添加参数(貌似可以解决),可是又忘了参数如何写,最后终于在国外的一个网站看到有人用了这个办法,并且推荐用这种方法。一试,果然好用!
方法:工程属性-Flex Compiler-
在输入框中输入 -use-network=false
注意,要与前面的参数之间留一个空格。
问题解决了。
(就在刚才我把 -use-network=false去掉了,但是程序依然正常运行了,诡异!其实本来不添加 -use-network=false也该正常的,可之前无论怎么样都不行。怀疑可能在那个时间段系统的安全策略有变化,我只能这么想了。)
不过这个方法还是很有用的,因为它在那个时间段解决了问题,缓解了调试的时间。
相关文档:
<?xml version="1.0" encoding="utf-8"?>
<!-- Simple example to demonstrate the DateTimeAxis class. -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml">
<mx:Script>
import mx.collections.ArrayCollection;
......
用了3天时间写了这个 第一版本 进度图, 其实也是甘特图的一种了,
目前甘特图有很多软件了,但是在线的还比较少,而且功能比较单一,
不过国内的倒是有几个, 一个是异度的,一个是向日葵的,都是用JS写的
还有个用FLASH 写的 也很不错, 我用FLEX 写了个,问题还是有的,比如占用CPU
资源过高,不过扩展性到是很强 。 ......
flex项目和组件等
open-source project : Flex
Adobe APIs
主要包含corelib, mappr, flickr, youtube及加密等类库.
http://labs.adobe.com/wiki/index.php/ActionScript_3:resources:apis:libraries
as3awss3lib
与 Amazon S3 交互的 ActionScript 3.0 类库
http://code.google.com/p/as3 ......
Flex使用Loader和URLRequest加载本地图片示例:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="absolute">
<mx:Script>
<![CDATA[
import mx.core.UIComponent;
import mx.controls.Alert;
import flash.display.*;
i ......
<!-- -->
<!--
/* Font Definitions */
@font-face
{font-family:Wingdings;
panose-1:5 0 0 0 0 0 0 0 0 0;
mso-font-charset:2;
mso-generic-font-family:auto;
mso-font-pitch:variable;
mso-font-signature:0 268435456 0 0 -2147483648 0;}
@font-face
{font-family:宋体;
panose-1:2 ......