Recently in Flex3 Category
给出一个比较老的链接http://www.uza.lt/codex/as3-global-object/
当时这个出来还是蛮受欢迎的
就我当年而言,我是不喜欢这种监听的,其实现在也不大满意
原因有蛮多,就当年而言,我的代码模式是我更乐意在一个逻辑体中对数据集合修改后或者发事件,或者直接调用绘制工具保持某个显示保持数据更新
因为一直做游戏的原因,其实发事件并不是一种高效的办法,这里要特指下是那种直接new一个event dispatch出去,因为无形中会产生创建的消耗,而as3创建一个对象并不快,虽然很多人很乐意谈论gc机制如何如何,但要意识到一点就是:gc是消耗cpu达到清理的目的。能事先预估到这种更新频率高的发送调用,还不如直接用内存换速度的方法实现
这又会引入一个新的争执,就是事件机制好不好,看了上面这段,估计都认为我厌恶事件,其实一个玩意采不采用事件发送,这要看具体想实现什么要的逻辑功能
比如一个component,大家会发现为什么open source包给出的component都是dispatch event来实现的,原因也很简单,因为人家给出的是共享给大家,方便通用性而言,事件机制相当不错,如果一个项目的某个component只有一个地方使用到,那我觉得还发送事件就有点问题了
对于最上面的地址,重温下代码,发现不是跟flex sdk中的ChangeWatch功能很类似么,也就是mxml中用得很频繁,也是相当核心[BIndable]和在flex component的属性中是使用{},把mxml解析出as3再编译,其实就是使用ChangeWatch实现,你的绑定数据集合跟上面的GlobalObject就差不多了
对于现在我在做的这个项目,其实框架我还保持了flex框架,因为这为我节省了很多ui的功夫,包括皮肤制作、组件功能相当多的部分,至于很多人喜欢谈论的flex框架大小问题,如果我重复去造下轮子,估计大小比flex的还大,而且用不到的功能组件,你是可以方便剔除掉的,比如一个button,自己写一个当然小了,但焦点管理、tab管理、皮肤九宫其实都未做考虑,而这我都需要
同样,这也是我保持使用[Bindable]的根本缘由,我见过很多自己用as3重做一个ui框架失败的项目,而且我也没有时间耗在这上面,再说小心点使用,其实内存效率都可以保持在一个我非常满意的效率,只是有一点比较不爽的就是,我虽然有办法让vo(就是上面的GlobalObject)在我需要的时候停止发送事件,也有办法在需要的时候重新激活继续发事件,但这步骤相当的麻烦--就是让给我不爽呀
我估计Cairngorm普及了这么久,估计很多人已经很习惯的把ModelLocator进行绑定,之后分发到各个不同的flex component,这是Cairngorm最核心的,也因为这个,它一出现跟flex框架相当的吻合,不过其他地方的转发,比如command delegate在具体项目中,是相当浪费的行为,就是说Cairngorm太学术性质了
不过就是因为太习惯ModelLocator的绑定,也导致了非常多的滥用绑定,而事后发现"哎呀,一用flex框架、Cairngorm内存就这么大呀,而且越跑内存越大",对于一般自己写的,event是比如容易去移除的,毕竟你写的嘛,但bindable是生成的,当然也是有办法去移除,就是不那么方便了
所以要回到原来,就是ModelLocator的绑定不应该这么随意,这其实太多教程、代码例子起了很不好的示范,就是把远程数据拿过来就直接绑定,利用PropertyChangeEvent分发到flex component界面,这看起来很爽,只要注意远程Delegate数据赋值,一切界面是视图上调整下,一个实例出来了,简单,清爽,代码也不多
其实这些实例大多对于本身来说他做法也没错,错的只是太过简单了,因为一个界面数据集合永远都不会是界面显示数据集合这么简单,内在相互逻辑都被忽略掉了,明白我的意思没,ModelLocator中有太多其实不需要绑定的数据被迫绑定,而且不会去解除绑定
Good Luck & Have Fun!
这个翻译组筹备很久了,之前翻译后的文章是放到天地会wiki宝典,当时wiki成立主要也是存放这些资料,AS3CN天地会开动WIKI宝典。
说来惭愧,我都好久没有去看过翻译组的东西了,还好之后管理adobe发送的需要翻译的文章以及评价等级和翻译后的审核已经有相应的人接手了。
这次忙的时间段长了好多,还不知道什么时候能忙完
感叹就到这吧
在天地会翻译组里面,你能索引到最新的翻译文章,当然以前的也能看到,会有类似快照的简单描述,现在这种快照是翻译者人肉上去的
文章的时效性是很高的,就像前几天Adobe® Flash® Builder™ 4 beta&Adobe Flash Catalyst™ beta 出来了,昨天晚上我好像看到群通知有关于最新的Flash Builder的文章已经传递过来了
Good Luck & Have Fun!
这次的标题长了呀
详细信息:http://bbs.actionscript3.cn/thread-27689-1-1.html
第一场在浙大紫金港校区办的,现在好像浙大大一大二的关心这个的人已经不多了(紫荆港我呆了4年,现在除了几个专业都是只有大一大二),还是新一代有什么新想法,不了解了呀
图文现场:http://bbs.actionscript3.cn/thread-28091-1-1.html
视频和PPT下载:http://www.riatraining.net/?action-viewnews-itemid-75
6月6日下午2点半,在浙大玉泉校区图书馆7楼720还有第二场
有空大家也参加吧
第二场第一个轮到我了
Good Luck & Have have!
里面有粒子示范,当然也有svn地址
Some feeling about PluseParticle 1.0.0015,对比PluseParticle嘛,这个Flint更为强劲,毕竟把PaperVision3D和away3D一些库都囊括进来了,已经分细了2d和3d的粒子功能
当然如果Flint有PluseParticle的Explorer就更好啦
粒子系统实在没啥好介绍的,还是去看代码比较好,很多时候想不到效果就是写不出来,不管你工具有多好,所以Explorer还是很有价值的,这个还是要多参考After Effect之类的软件
Good Luck & Have Fun!
工具如其名,就是直接显示当前flash player播放状态,以图标形式,很帅,比自己写一个要靠谱,主要是我懒,弄点东西总是能偷懒就偷懒
地址是:http://www.lostinactionscript.com/blog/index.php/2008/10/06/as3-swf-profiler/
使用也很简单,flash flex项目下都是能直接用
不过有一个地方要改改
就是gc()函数,除非是考虑兼容老版本player flash9--没达到9.0.124
建议使用
public static function gc() : void {
System.gc();
}
不过当年是用localConnection干的
Good Luck & Have Fun!
SWF文档格式开放后,也没有细心看过结构
前几天刚看到SWFExplorer,之所以不用ApplicationDomain.getDefinition作者已经说了
试了下的确不错
相当的赞
用接口应付载入逻辑包的情况(Using Interface to Connect Main Application and the Logical Lib)结合起来就更爽了
其实不止SWF能分析出类结构,SWC也是可以的,当然文档格式都是一样的
发布你的资源文件(release your class resource)-Flex篇
发布你的资源文件(release your class resource)-Flash cs3篇
Good Luck & Have Fun!
其实上周去kingda家就拿到了《Getting Started with Flex3》--Jack D.Herrington & Emily Kin这本书,口袋书,公交车上看看挺不错,休闲时候也可以翻翻,价值19.99美刀,真是贵呀!
对于flashdll,估计现在很多人都用了
发布你的资源文件(release your class resource)-Flash cs3篇
发布你的资源文件(release your class resource)-Flex篇
对于一个swf和swc的逻辑包,当然,运行时你可以去反射获取,但写代码时候去相当的郁闷
其实解决也很便捷,只要确保逻辑包的文档类是由一个定义好的接口派生的就好了,之后可以把获取的Class转成这个接口,这样分工完善会少去很多的麻烦,诸如:把api写错之类的问题
先上代码包吧
Using Interface to connect main application adn the logical lib.zip
代码包中
Tester.as是主程序类
ILib.as是接口
Lib.as是逻辑包文档类
lib.fla是逻辑包文件
----------------------------------------------------------------------------------------------------
For flashdll,maybe that's simple to us.
When loading a logical lib as swf or swc,reflection is a perfect way to use it.But I can view nothing about the logical lib when coding.So I code a interface to fix it.
Of course,it would be better when your coworker is in charge of the logical library and you code the main application,and you wouldn't make a mistake as coding the wrong name of the library API.
the code package:(I think you will find it)
Tester.as::main application class
ILib.as::of course,a interface
Lib.as::document class of the logical library
lib.fla::logical library file
Good Luck & Have Fun!
看来回去考试3周,被土木工程的书一搞,Flex一些东西又忘掉了
这次是关于Canvas的
Canvas是不会显示坐标为负数的东西
当时我就郁闷了,为什么addChild一个小东东,为啥拖着往右边动下,本来它左边应该重新绘制一个的,居然都没了
还是老老实实用UIComponent
看来一段时间把Canvas当做Sprite用了
以后要记得了
这完全没啥技术含量,就是做个小tip
Good Luck & Have Fun!

