切梦刀 发布的文章

Flash Loader加载完成不发送COMPLETE和ERROR事件的问题分析

Flash进行资源加载时常会“停住”,表现为加载进度卡在某个地方。跟踪发现Loader的progress为100%,但未发送Event.COMPLETE或IOErrorEvent.IO_ERROR等事件。

目前项目加载底层的队列依赖于Loader(URLLoader)的COMPLETE和ERROR事件,如果这两个事件不发送将导整套加载机制崩溃 - -,后续跟踪发现的确会如此。

问题展示

- 阅读剩余部分 -

Air取得app.xml配置的数据

在Air运行过程中得到当前程序的版本,可以如下做:

var xml:XML = NativeApplication.nativeApplication.applicationDescriptor;
var ns:Namespace = xml.namespace();
var appVersion:String = xml.ns::versionNumber;

如上代码段:
xml就是Air工程的xx-app.xml配置内容;
appVersion就是Air工程的版本号;

timeout引发的Error #2044: 未处理的 securityError:。 text=Error #2048: 安全沙箱冲突:XX 不能从 XXX 加载数据

Error #2044: 未处理的 securityError:。 text=Error #2048: 安全沙箱冲突:c.dou.li:4000/demo.swf 不能从 s.dou.li:10000 加载数据。

Flash客户端demo.swf以Socket连接s.dou.li:10000地址时报如上异常,最被怀疑为s.dou.li未对demo.swf进行授权,未返回安全策略文件。

client尝试开启一个socket时,Flash会先启动一socket发送“<policy-file-request/>\0”串给server;

服务端收到后返回“<cross-domain-policy> <allow-access-from domain=\"*\" to-ports=\"*\"/></cross-domain-policy> \0”内容表示对所以客户端授权;

以上都没问题,且直接复用上一项目的结构,经过查看大量资料后确定策略文件的请求、返回、内容没问题。

继续怀疑client的socket初始化参数有问题,查了一下Socket的timeout设置,次奥~~~~值为20,超时时间20ms啊,太低级了有木有。果断将timeout改为30000问题解决。

[转]耦合与脱耦——深入分析为什么使用pureMVC、接口或抽象基类

9ria.com,General_Clarke著。
发此帖时已在论坛见过多条希望解释为什么要用MVC框架、为什么要用接口、接口和父类继承有什么区别的帖子
使用上述办法其实目的只有一个——脱耦。
兹专门拿出一篇帖子来,深入说一说耦合与脱耦。
文章不只针对AS,本文对各种三代编程语言都适用

目录:
一、几个基本概念:模块、耦合与脱耦
二、脱耦的误区
三、耦合的7个级别
四、怎样设计才能使耦合程度适当

- 阅读剩余部分 -