标签 flash 下的文章

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个级别
四、怎样设计才能使耦合程度适当

- 阅读剩余部分 -

Flash Timer无故停止之谜

项目底层资源Cache超时使用了Timer驱动,每个资源到期Cache超时时会进行“释放”。后来发现有明显内存泄漏,排查出是因为Timer未进行导致。Oh,卖糕的~

ResourceManager为单例,Timer在工程启动时开始执行,为了方便说明见如下示例:

    public class Demo extends Sprite{
        private var _t:Timer;

        public function Demo(){
            _t = new Timer(500);
            _t.addEventListener(TimerEvent.TIMER, onTimer);
            _t.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete);
            _t.start();
            trace("is running:" + _t.running);
        }

        private function onTimer(e:Event):void
        {
            trace("timer");
        }

        private function onComplete(e:Event):void
        {
            trace("complete");
        }
    }

输出:
is running:true

以上结果应该在意料之中?

但,只打印了这一行,onTimer()和onComplete()中的trace()未执行,问题就出在这。正常情况应该至少会每500ms打印一次“timer”。

若增加一个ENTER_FRAME监听,每帧输出Timer的状态,如下:

- 阅读剩余部分 -

Scout(Monocle)高级特性开启工具

我之前有往篇文章《Flash性能分析利器Scout(原Monocle)下载及使用说明》中,介绍过通过python开启旧版本Flash SDK开发的工程的Scout高级特性。

但略显繁琐,再推荐一个开启swf的scout高级特性的工具“SWFScoutEnabler”:

SWFScoutEnabler.zip (443.2 KB, 下载次数: 1325, 最后修改: 2014-01-07 23:52)

工程源码地址,有兴趣可以看看:https://github.com/renaun/ActionScriptExamples/tree/master/SWFScoutEnabler