Flex缺乏策略文件权限问题
今天遇到的一个问题,读取网站上的一个XML文件被拒绝,错误描述如下:
*** 安全沙箱冲突 ***
到127.0.0.1:8080的连接已停止 - 不允许从d:/flex/work/bin_debug/work.swf进行连接
错误:拒绝请求位于 http://127.0.0.1:8080/php/work.xml 的资源(请求者从d:/flex/work/bin_debug/work.swf发出请求),原因是缺乏策略文件权限。
跨域访问需要配置策略文件,http://localhost:8080和http://127.0.0.1:8080被看做是不同的域,写个crossdomain.xml,放到站点根目录下:
<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy
SYSTEM "http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd">
<cross-domain-policy>
<allow-access-from domain="*" />
</cross-domain-policy>
这里的"*"指的是允许所有站点的访问,你可以自己指定,把localhost,127.0.0.1都写到allow-access-from 里面的domain属性中.
相关文档:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="*" layout="vertical" creationComplete="initApp()">
<mx:states>
<!--新建“index”State-->
<m ......
现在flash builder 4已经自带了多种语言包,在使用的时候直接拿过来用就可以了,在使用资源文件的时候,需要设置一下资源参数
-locale=en_US,zh_CN -source-path=locale/{locale}
flex 3.x的版本的sdk只支持英文和日文,如果需要中文,则可以从flex
4.xsdk的\frameworks\locale拷贝zh_CN等文件夹到flex3.x的\frameworks ......
flex中在DisplayObject里直接用stage,可能会是null,原因不是太清楚,找到了解决办法,当接收到ADDED_TO_STAGE事件时,stage肯定被创建出来了,这个时候再使用就没有问题。
addEventListener( Event.ADDED_TO_STAGE, function( e:Event ):void ??
{
stage.addEventListener(KeyboardEvent.KEY_DO ......
很久没去练习flex 开始有点生疏,用起来还是很舒服。flex 3和flex4之间存在一些差别,所以在选择的时候需要小心一点,今年主推flex 4 所以初学的人可以跳过flex 3直接学flex4。 因为flex 开发是建立在as 3基础上,故此研究类库之间结构是一件很不错的事情。毕竟结构美是学习编程一种美学流。
今天的纯粹练习 ......