flex与LTP配置时出现的错误及解决办法

服务器端是用mongoose架设的轻量级服务器,客户是flex的swf

 

1. 服务器端可以响应几乎任何URL请求,单独URL可以JSP也没问题,但用FLEX做时就会出问题,

RPC Fault faultString="Security error accessing url"

faultCode="Channel.Security.Error"

faultDetail="Destination: DefaultHTTP"

  在实在是办法时曾经以JSP或SERVLET为跳板,倒是可以解决问题,但这个解决办法本身就是问题啊。。。。

  是单独进行HTTP请求时产生的跨域请求造成的,解决方法为:

  在服务器端添加XML文件,crossdomain.xml,将可以访问的域domain设置为全部(*)

 

<?xml version="1.0"?>  
<cross-domain-policy>  
    <allow-access-from domain="*" />  
</cross-domain-policy>

参考:http://blog.ntsky.com/flex-rpc-security-error-accessing-url.html

 

2. FLEX的默认编码为UTF-8,但将其改为GB2312时,传递的参数编码似乎仍为UTF-8,必须在代码中加入

System.useCodePage=true;

  这样使得FLEX编码与MXML编码一致,同为GB2312

 

3. RaVis的在线帮助文档

http://birdeye.googlecode.com/svn/trunk/ravis/libRaVis/asdoc-output/index.html

 

4. Error #1088: 文档中根元素后面的标记格式必须正确。

    a. 这是错误是在我用
   var loader:URLLoader = URLLoader(event.target);    
   EngModel.getInstance().chnCaption= new XML((loader.data)as String);   
   时出现的.原因是XML分析器出错,要改为new XMLList((loader.data)as String);   

   来自:http://www.cnblogs.com/fishert/archive/2007/07/18/822717.html

   b.

最近的一个项目,里面需要用as3载入xml,xml由PHP输出,编码为gbk.as3里用了System.useCodePage=true.


  调试时发现时不时会出现错误:TypeError: Error #1088: 文档中根元素后面的标记格式必须正确.特别是数据稍大一点的时候.


  经调试发现载入的数据在XML末端有时会莫明其妙跟上一串随机乱码.


  检查了PHP确定格式无误后,明白了这是flash as3使用了System.useCodePage=true后的BUG..


  网上解决办法是使用utf-8的格式.可是现在全站都统一为GBK了,接口又多,改起来很麻烦.


  于是结合的XML特定格式,在flash上想了个小小的办法,轻松搞定了.


  下面把我的办法共享一下吧.

 

private

 

function

 onLoadComplete

(

e

:

Event

):

void

 

{



 
var loader : URLLoader = e . currentTarget as URLLoader ;

var data = loader . data ;

data
= data . substr ( 0 , data . lastIndexOf ( ">" )+ 1 );

var xml : XML = new XML ( data );

............

}

 

        看出来了吧,其实就是把多出的随机字符串过滤一下,因为xml必定是以'>'结尾的,将最后的'>'之后的字符都去掉就OK了。也不用全站都改代码了。需要的朋友可以参考一下吧。

来自:http://www.cnblogs.com/xxcainiao/archive/2009/06/05/1496955.html

 

 5. 关于initialize和creationComplete等事件的发生时机

关于creationComplete事件的发生时机,手册中是这样说的:
假设程序中有这样的结构:
Application
    OuterVBox
        InnerVBox1
            InnerVBoxLabel1
        InnerVBox2
            InnerVBoxLabel2


事件: preinitialize, initialize, creationComplete发生的顺序是这样的:

OuterVBox  preinitialize
    InnerVBox1  preinitialize
        InnerVBox1Label  preinitialize
        InnerVBox1Label  initialize
    InnerVBox1  initialize
    InnerVBox2  preinitialize
        InnerVBox2Label  preinitialize
        InnerVBox2Label  initialize
    InnerVBox2  initialize
OuterVBox  initialize
        InnerBox1Label  creationComplete
        InnerVBox2Label  creationComplete
    InnerVBox1  creationComplete
    InnerVBox2  creationComplete
OuterVBox  creationComplete



如果将 OuterVBox容器变成ViewStack并且creationPolicy 属性为auto, 则事件发生顺序是:

OuterViewStack  preinitialize
    InnerVBox1  preinitialize
    InnerVBox2  preinitialize
OuterViewStack  initialize
        InnerBox1Label  preinitialize
        InnerBox1Label  initialize
    InnerVBox1  initialize
        InnerBox1Label  creationComplete
    InnerVBox1  creationComplete
OuterViewStack  creationComplete
6. FLEX中TITLE的设置方法
在application中,有pageTitle属性,可直接设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值