啊啊啊啊啊啊啊啊……
其实我不知道是啥
不过好像是我搞错了渲染的方法(或者是我太笨,找不到正确的切入点)
速度实在是好慢好慢…
反正一堆乱七八糟的事…
应该是我不懂的原因
嘛嘛~那项目的全名叫emcmanus-flashsdl
有兴趣的童鞋就去玩玩吧...
我又有东西写了
Dear 黄晋威,
由于天气寒冷造成上海供电紧张。上海市供电局对紫竹地区会实施用电限制,所以可能会对我们的用电产生影响,例如空调停用等停电情况可能会发生。如果发生停电情况,请大家不要紧张。这是政府的限电措施,请大家谅解!
在强调地球变暖的同时,科学家们忘记了强调地球变暖会照成的最大的危害:地球变冷。
科学解释是这样的:由于地球变暖溶解了冰川,冰川们飘下大西洋和太平洋截断了暖流。于是我们得以依赖的暖流消失了,大陆进入了类冰川时期。
好冷~
该日志未加标签。抓壮丁启示一则
更正一下:
其实我已经从微软MSN SET离职,而且我的坑已经有人填上;
这个是帮一位快要离职的同事发的,给他发的时候说从猫粮这里看到就可以了。
那个同事,叫jay。
我项目组(微软MSN SET)招Flash Developer,壮丁要求如下:
1. 至少一年的AS 3.0开发经验(Flex/AIR knowledge will be a plus)
2.对OO有所了解和熟悉,良好的代码写作规范
3.对RIA抱有热情和兴趣
4.能够进行简单的英文交流,读懂英文文档
壮丁抓来了不能白干活,大致的职责如下:
1.使用AS 3.0进行Flash mini site项目的开发
2.没了。。。
壮丁待遇6 - 13K,有意者请把简历发去这个邮箱 jieheng.liang@gmail.com
非诚勿扰!
--------------------------------------- 我只是一条小小的分割线 -----------------------------------------------------------------
不少朋友很好奇我这个项目组是做什么的呢,都有什么产品呢,这里就来做个简单的介绍
MSN SET是微软MSN部门下的一个团队,主要的business是为企业开发品牌/专题网站 (Flash/SilverLight mini site),或者是一些互联网应用(比如手机程序,Windows边栏程序),主要客户是一些世界500强的企业,包括可口可乐,百事,通用,雀巢,丰田等。
可访问以下的链接看看相关的站点:
悍马:http://fearless.msn.com/ (强烈推荐,最喜欢的一个)
美国家庭保险: http://buildingabrighterfuture.msn.com/
Subway (一个快餐品牌): http://fittoboom.msnbc.msn.com/
百事: http://thepepsimaxclub.msn.com/
多芬: http://dove.msn.ca/en/default.aspx
MindBodyBalance:http://mindbodybalance.msn.com/
Jack & Suzy Welch:http://everybodysbusiness.msn.com/
Toyota:http://appetiteforlife.msn.com/
还有一些项目已经下线了
该日志未加标签。原来FP10的普及率已经高达95%
http://www.adobe.com/products/player_census/flashplayer/version_penetration.html
详情在传送门
看来还是可以放心丢弃9的版本了..
该日志未加标签。蛋疼的性能优化
程序代码来之Advanced ActionScript Animation。 下面这个是没有优化过的
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.text.TextField; import flash.text.TextFormat; [SWF(width=800, height=800, backgroundColor=0xffffff)] public class Container3D extends Sprite { private var _sprite:Sprite; private var _n:Number = 0; public function Container3D() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; _sprite = new Sprite(); _sprite.y = stage.stageHeight / 2; for(var i:int = 0; i < 100; i++) { var tf:TextField = new TextField(); tf.defaultTextFormat = new TextFormat("Arial", 40); tf.text = String.fromCharCode(65 + Math.floor(Math.random() * 25)); tf.selectable = false; tf.x = Math.random() * 300 - 150; tf.y = Math.random() * 300 - 150; tf.z = Math.random() * 1000; _sprite.addChild(tf); } addChild(_sprite); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(event:Event):void { _sprite.x = stage.stageWidth / 2 + Math.cos(_n) * 200; _n += .05; } } } |
加了行 cacheBitmap = true 后,少了20%这样
package { import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.text.TextField; import flash.text.TextFormat; [SWF(width=800, height=800, backgroundColor=0xffffff)] public class Container3D extends Sprite { private var _sprite:Sprite; private var _n:Number = 0; public function Container3D() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; _sprite = new Sprite(); _sprite.y = stage.stageHeight / 2; _sprite.cacheAsBitmap = true; for(var i:int = 0; i < 100; i++) { var tf:TextField = new TextField(); tf.defaultTextFormat = new TextFormat("Arial", 40); tf.text = String.fromCharCode(65 + Math.floor(Math.random() * 25)); tf.selectable = false; tf.x = Math.random() * 300 - 150; tf.y = Math.random() * 300 - 150; tf.z = Math.random() * 1000; _sprite.addChild(tf); } addChild(_sprite); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(event:Event):void { _sprite.x = stage.stageWidth / 2 + Math.cos(_n) * 200; _n += .05; } } } |
把所有的字母都draw成bitmap以后再加去显示对象里面,cpu 占用率奇迹般地只有10%了..
而且我发现,关掉鼠标事件很有必要...
package { import flash.display.Bitmap; import flash.display.BitmapData; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.Event; import flash.text.TextField; import flash.text.TextFormat; [SWF(width=800, height=800, backgroundColor=0xffffff)] public class Container3D extends Sprite { private var _sprite:Sprite; private var _n:Number = 0; public function Container3D() { stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; _sprite = new Sprite(); _sprite.y = stage.stageHeight / 2; _sprite.cacheAsBitmap = true; _sprite.mouseChildren = false; _sprite.mouseEnabled = false; for(var i:int = 0; i < 100; i++) { var tf:TextField = new TextField(); tf.defaultTextFormat = new TextFormat("Arial", 40); tf.text = String.fromCharCode(65 + Math.floor(Math.random() * 25)); tf.selectable = false; tf.width = tf.textWidth; tf.height = tf.textHeight; var bdd:BitmapData = new BitmapData(tf.width, tf.height, true, 0xFFFFFF); bdd.draw(tf); var bd:Bitmap = new Bitmap(bdd); bd.x = Math.random() * 300 - 150; bd.y = Math.random() * 300 - 150; bd.z = Math.random() * 1000; _sprite.addChild(bd); } addChild(_sprite); addEventListener(Event.ENTER_FRAME, onEnterFrame); } private function onEnterFrame(event:Event):void { _sprite.x = stage.stageWidth / 2 + Math.cos(_n) * 200; _n += .05; } } } |


