作者cochiachang (蓝玥)
看板Flash
标题[问题] 关於as吃资源程度
时间Sat Nov 8 00:05:20 2008
最近做了一个flash图像聊天室
发现当人数多时 有时会偶然性的发生错误
会有"影片中有一个Flash Player会让执行速度变慢..."
的警语出现
通常这是在我单机测试时 写出无限回圈才会出现的糟糕物= =
不知道是发生了什麽严重问题所以变这样..(呜..我是嫩咖)
但是一般测试只要人数在一般状况
其实出现这样错误讯息的次数现阶段还不多
聊天室可以执行很久都以正常状况存在着..
所以想问一下下列指令吃记忆体程度
onMouseOver、onMouseOut、onPress
这几个指令是否会很吃资源呢?
他们有反应 当速度变慢时 打字会变很慢
我在想 这问题可能是我设了按键监听?(为了让他们按enter可以自动发话)
想问一下 设定按键监听会是一件很吃资源的事吗?
还有...我在有些函数里面 有建立变数
不知道是否当这函数结束後 由函数产生的变数会自己消失
还是说会一直存在着占记忆体?所以时间久了会自动变糟糕...?
想问问有做过flash聊天室的人
有什麽关於lag要注意的事项吗?
在做之前其实已经规划了很多了
但是完成後还是有许多lag问题 可能是因为我们背景与人偶娃娃用了许多动画
有关於上述的错误讯息 代表着怎样的状况呢?
是否慢慢的占用记忆体也会产生
或是突然的无穷回圈会发生这样的问题呢?
发生此错误讯息的电脑系统为vista
我自己本身还没有遇到过...(我用xp)
不知道是否有知道有什麽与flash相关的教学文章吗>_<
感恩不尽喔!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 203.67.95.137
1F:推 cjcat2266:Flash管理记忆体的方式是garbage collector 11/08 00:08
2F:→ cjcat2266:Google一下可以查到GC的运作机制 11/08 00:08
3F:→ cjcat2266:简单来说,当有一个物件你不需要使用的时候 11/08 00:08
4F:→ cjcat2266:可以让装载它reference的变数值为null 11/08 00:08
5F:→ cjcat2266:当一个物件不再被任何一个变数装载refernce的时候 11/08 00:09
6F:→ cjcat2266:GC就会在需要记忆体的时候去把该物件从记忆体上消除掉 11/08 00:09
7F:→ cjcat2266:因为它再也没有办法被存取到,所以它占用着记忆体 11/08 00:10
8F:→ cjcat2266:至於你说的function里面宣告变数,这叫local variable 11/08 00:10
9F:→ cjcat2266:一离开function之後该变数就不见了 11/08 00:11
10F:→ cjcat2266:如果该变数是某个物件唯一的reference 11/08 00:11
11F:→ cjcat2266:那该物件也会在适当时机被GC处理掉 11/08 00:11
12F:→ cochiachang:因为我聊天室存取人数是使用二维阵列 全域一维 11/08 00:12
13F:→ cjcat2266:当你画面上的视觉元素不需要的时候,记得把它remove掉 11/08 00:13
14F:→ cjcat2266:不然光是alpha = 0或者visible = false还是有占用记忆体 11/08 00:13
15F:→ cjcat2266:然後就是那些event listener是event发生才会被呼叫 11/08 00:14
16F:→ cjcat2266:定义好之後没有事件发生不会消耗资源,不用担心 11/08 00:14
17F:→ cochiachang:也全域二维 用回圈产生二维 那这样执行完这个会删掉吗 11/08 00:15
18F:→ cjcat2266:全域变数不会自动被删掉,不需要的时候需要你自己delete 11/08 00:15
19F:→ cochiachang:我说错了 是local= =名称搞错 我想到错乱抱歉 11/08 00:15
20F:→ cochiachang:很谢谢你 我去查一下garbage collector的运作 11/08 00:16
21F:推 pm2001:CPU太废也会出现这个讯息 11/08 00:18