Posts Tagged ‘经验’

actionscript 3.0里面控制影片深度

星期三, 11月 12th, 2008

虽然题目是在actionscript 3.0里面控制影片深度,而实际上actionscript 3.0里面已经不复有深度(depth)这个提法了。

那不同的显示对象,如果要设置对象A在对象B上面怎么做?

actionscript 3.0提供了一个DisplayObjectContainer的基类,用来管理类中的显示对象。

该类提供了若干管理方法:

1. addChild:将对象加入显示列表,其实是一个压栈的过程,先加进去的对象在底部,后加进去的对象在顶部。在没有动态设置深度的情况下,安排好addChild的顺序基本上可以满足需求了。

2. getChildByName():按名称检索显示对象。

3. getChildIndex():返回显示对象的索引位置。对象的索引值从0开始

4. setChildIndex():更改显示对象的索引位置。应当避免不要出现两个显示对象的索引位置一样的情况,那样谁显示在前面是不确定的。

5. swapChildren():交换两个显示对象的前后顺序。
6. swapChildrenAt():交换两个显示对象的前后顺序(由其索引值指定)。

另外DisplayObjectContainer只是一个基类,不能实例化的,要管理一堆显示对象,可以用一个空白的MovieClip来充当容器,MovieClip类也是从DisplayObjectContainer基类派生出来的。
——————————————————-

多说一句的是:Flash CS3虽然兼容了actionscript 2.0,然而Adobe还是要把整个产品向规范化靠拢,所以2.0在将来也将逐步被摒弃,要在这套环境下继续开发,早点转成3.0的模式去设计吧。

Flex和Flash编译出来的体积

星期五, 11月 7th, 2008

去年开始接触的adobe的flex,然而一直都处于练手阶段,直到今年夏天才开始做一些小项目。结果一做,发现编译出来的swf体积比起以前用flash(不论哪个版本的)编译出来的大了好多。

比如这个页:http://im.v65.com.cn/data/showf.html
上面的swf是用flex开发的,有400多K,即使我把RSL的swc单独分出来,swf怎么也有200k左右。

于是决心不用那些flex组件,用flash cs开了个action script3的项目,把flex项目中的as代码移植过来,再换成自己画的组件,编译出来的swf,怎么也超不过60K……

在目前中国这种网络环境下,假如让黑龙江的用户去打开一个深圳的网页,网页大小超过200K还是很影响用户体验的。

Flash还是很适合做一些体积小的项目,开发周期短,运行速度快。

而Flex,我想用它来做AIR的程序应该比较合适,要是放在网页上,一方面影响下载速度,另一方面,运行时占内存也太多了。