由于项目中需要用到大量角色同屏幕的功能,需要提高flash player的渲染性能。下午做了个渲染性能测试,并完善了去年写的位图优化代码库。
画面大小2880*2880
500个矢量人物动画MC(嵌套2层),循环播放
都不把屏幕外的区域removeChild
统一是用Flashplayer sa 10.0 debug版测试
1.不优化,直接addChild
fps=4,CPU占满,内存18M~29M
2.增加了cacheAsBitmap
FPS=1,cpu占满,内存156~196M,内存不断波动
[ 阅读全文 ]
最近的项目由于团队中初级ASer比较多,本来是做自动寻路的,硬是被砍到直线碰撞,可惜悲剧的是,直线碰撞都跟我说有问题。
昨天一个哥们一直是让角色没走一步与像素点碰撞判断是否可走。我再多废话一遍:这样既有误差,效率也不高。
今天放此例,表明直线碰撞的推荐做法是,先画一条直线与通断模型进行碰撞测试,证实可抵达之后再直接让角色移过去(速度控制之后再做,与此例无关)。
[ 阅读全文 ]
问题:
list里面的对象怎样拖到画面里?
思路
把list里的对象直接拖到画面里的功能,在场景编辑器里常常用到,我们会放一个List,里面每一项对应一个建筑物,用户可以把建筑物拖拽到场景中。这也和flash的元件库拖拽东西到舞台是一样的效果。
我们可以在List的每一项中存储该项所对应的ClassName,当拖拽开始时,创建对应的实例,并让它跟随鼠标。直到在画面有效区域中松开鼠标才将其添加到新的DisplayObjectContainer内。 [ 阅读全文 ]
问题:
- var loader:Loader = new Loader();
- loader.loadBytes(byteArr);
- return loader;
之后trace(loader.width,loader.height)为(0,0),
并且,只要通过loader.width和loader.height改变宽高,就会不见显示。
原因和解决:
loadBytes和load方法一样是异步的,需要监听complete事件,complete之后才可以对内容进行操作。
btw:从今天开始,针对网友的提问,不管简单复杂,只要我没写下来过的,都会记录到博客上。
偶然看到了Flash SEO tool,这是一个Flash网站的SEO工具,可以帮助你使Flash网站被网络蜘蛛抓到。此项目在Google code上http://code.google.com/p/flashseotool/即将提供下载。
目前的功能:
- 用于网络蜘蛛的HTML 菜单和子菜单
- 标题,meta、keywords和description
- 友好的URL
- 简单、自动从AS3代码更新
未来会加入的功能:
- 创建谷歌sitemap
- 深度链接集成支持
- 集成到Delicious、Twitter等
- 创建RSS
[ 阅读全文 ]
收藏一个AS3库: xrope by eidiot (http://eidiot.github.com/xrope/zh.html)
这是一个用于原生AS3显示对象的简单layout库。
特点
-
用于原生AS3显示对象,没有Flex或任何其它依赖。
-
AtomLayout 使用 getBounds() 排列显示对象,不用担心注册点问题。
-
组合 layout 元素/组 非常容易,不需要额外的显示容器。 (example)
如何使用
-
创建一个实现 ILayoutGroup 接口的 layout group 并根据需要设置属性。
-
添加显示对象或其它 ILayoutElement。
-
调用 layout() 方法
详情http://eidiot.github.com/xrope/zh.html
自从HTML5的消息放出后,长江后浪推前浪,越来越多的人开始关注HTML5。去年9月至今,看过不少文章提出Flash将被HTML5替代的观点。
最近又看到一篇文章《 有了HTML5,Flash还能走多远? 》,触动了我的神经:
http://blog.csdn.net/cping1982/archive/2010/02/23/5321010.aspx
感谢作者鹏凌三千分享宝贵想法,本文有理有据。在看到本文之后,我想补充几点个人看法。
1.今非昔比,Flash不一定重蹈Applet覆辙
Flash死不死和许多因素有关,没必要以Applet作对比。时代背景、用户欲求都已变化,原来的经验不再适用。
确实,Flash的缺点一直存在(前不久连号称“最强上网体验”的iPad都因flash的性能问题坚决不装Flash,导致许多网页无法完全显示),但产品好坏只是一部分胜算,运营推广、用户需求也很重要。坏的产品不一定不赚钱,好的产品也不见得赚钱,冥冥之中自有定数,得用户心者得天下。 [ 阅读全文 ]
色彩合成:
设alpha,red,green,blue都是0~255之间的数
color32 = alpha << 24 | red << 16 | green << 8 | blue;
色彩提取:
alpha = color32 >> 24;
red = color32 >> 16 & 0xFF;
green = color32 >> 8 & 0xFF;
blue = color32 & 0xFF;
这段时间搞flash需要用到日历控件,不过Flash自带的组件库中没有as3版本下的DateChooser,搜索也没找到什么现成的,于是写了个as3的。(绘制的界面是参考com.thomas.DatePicker.DatePicker的)
分享给同样在Flash开发中有需要的兄台。
[ 阅读全文 ]