flash 3d flash3d 研究所 pv3d 共享资源  | 经典范例  | 视频教程  | 友情链接  | 联系我们
登陆 | 注册  flash 3d 研究所
讨论区





最近更新:
● payday loan阁下在教程区里 回复“《pv3d, sandy, away3d...”(05:56:23)
● bad credit payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:13)
● payday loan阁下在教程区里 回复“《超简易papervision3D基础 ...”(05:56:12)
浏览主题:Tweener.addTween很卡怎么解决??

Tweener.addTween很卡怎么解决??
san0072 (2009-02-12 13:52:12)

我做了个类似3DWall的图片墙,加载了多于100张的120 X 90的图片,但是一拖动起来画面就一晃一晃的,主要代码我贴在下面:
////// 鼠标拖动 ////////////////////////////////////////////
// release mouse -- add by san
private function mouseRelease(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE, mouseMove);
stage.removeEventListener(MouseEvent.MOUSE_UP, mouseRelease);

}
// move mouse -- add by san
private function mouseMove(e:MouseEvent):void
{
cameraAngle -= (stage.mouseX-lastScrubX)*0.03;
lastScrubX = stage.mouseX;
// new Camera position
moveCameraToNewAngle(cameraAngle);
}
//move camera -- add by san                  
private function moveCameraToNewAngle(cameraAngle:Number):void
{
Tweener.addTween(camera, {                                x: Math.sin(cameraAngle/(180/Math.PI)) * cameraDistance,
     z: Math.cos(cameraAngle/(180/Math.PI)) * cameraDistance,
     rotationY:cameraAngle,
     time: planeDragTweenTime,
     transition: cameraTweenEasing
});
}
//////////////////////////////////////////////////////////////////


///////// 更新图片墙 /////////////////////////////////////////////
public function updateWallHandler(evt:TimerEvent) : void
{
     if(thumbnails.length>0)
     { // if have thumbnail
      var thumbnail:Wall3DThumbnail = thumbnails.shift() as Wall3DThumbnail;
     thumbnail.extra = {index:new Number,id:new Number};// save index for later reference
     thumbnail.y = i0_*(UserVars.thumbnailMaxHeight + UserVars.thumbnailSpacingVertical)-UserVars.thumbnailY;
     thumbnail.x = Math.cos(j0_ * anglePer) * radius;
  thumbnail.z = Math.sin(j0_ * anglePer) * radius;
  thumbnail.rotationY = (-j0_) * anglePer * (180 / Math.PI) + 90;
  thumbnail.extra.index = planeIndexCount;
     thumbnail.extra.id = int(ids.shift() as String);
                             
     // Interactive Roll Over, Roll Out, Press/Release
     thumbnail.addEventListener( InteractiveScene3DEvent.OBJECT_RELEASE, onPlaneRelease, false, 0, true );
     thumbnail.addEventListener( InteractiveScene3DEvent.OBJECT_OVER, onPlaneRollOver, false, 0, true );
     thumbnail.addEventListener( InteractiveScene3DEvent.OBJECT_OUT, onPlaneRollOut, false, 0, true );
                 
     scene.addChild( thumbnail, "category" + currentCategory + "_plane" + planeIndexCount );
                 
     planeIndexCount++;      
     // Finish loading, add interactive
     if (++i0_ == UserVars.rows)
     {
      i0_ = 0; --j0_ ;
     }
}// end if
else{
  update3DWallTimer.removeEventListener(TimerEvent.TIMER, updateWallHandler);
     update3DWallTimer.stop();
}
                 
}//end function




flash 3d 研究所 san0072
(2009-02-12 14:06:05)
不知道是Tweener自身的问题还是我代码哪里效率比较低!
不过我可以肯定我在做鼠标拖动图片墙时没有其他线程在运行,除了一个每两秒强制回收内存的线程外。内存占用我看了下也不多!图片多于100张后就开始感觉有点卡卡的了

flash 3d 研究所 fur3
(2009-02-12 14:53:21)
看看cpu消耗多少呢?
tweener本来就很消耗的,每秒都要更新好几次

flash 3d 研究所 san0072
(2009-02-12 14:56:04)
大概70多

flash 3d 研究所 fur3
(2009-02-12 15:18:34)
70多肯定卡啦,一直70的话不死机都是好的了。
呵呵,想办法往30以下控制吧

flash 3d 研究所 san0072
(2009-02-12 15:56:17)
我把帧频改成24fps,CUP也下来了,34以下。感觉好了点,但还是有点跳帧的感觉

flash 3d 研究所 fur3
(2009-02-12 16:56:30)
呵呵,不错不错哦~ 100张也太狂了吧,哈哈哈

flash 3d 研究所 san0072
(2009-02-12 17:17:07)
呵呵,现在加载200张基本不卡了,CPU也是25以下,谢你的提醒啊,原来我的帧频没调好,还有一些参数没协调好,现在可以了

flash 3d 研究所 DDM君
(2009-02-12 17:19:58)
=______=200张.......我们果然还是太胆小

flash 3d 研究所 san0072
(2009-02-12 17:31:23)
200张很多吗??都是一些10K以内的图片。
没办法,因为是做像一个搜索器那样的东西,我已经限制显示结果在250左右了,因为内存是一个限制,现在加载200张都占用了90多M。不知道有没什么办法来降低内存呢???

不知道各位有没用过国外的一个叫Cooliris的东西,很牛啊,人家好像可以无限加载图片那样,更何止200张!!不过要装他的插件才能使用,应该在插件里做了些东西!

flash 3d 研究所 san0072
(2009-02-12 17:38:22)
我们老板还嫌200张太少!!!

flash 3d 研究所 DDM君
(2009-02-12 17:46:24)
如果哪个网页一上来就200张图(而且是三维的@_@),我绝对不会看了,又不是以前那种‘百万格子’。我觉得50张,然后翻页可能比较好。
内存没办法减少的,正常网站要一下显示200张都要耗n多内存。以前所谓的‘秒杀小猫’不就是这道理嘛 ,哈哈

flash 3d 研究所 san0072
(2009-02-12 18:00:19)
呵呵,我想DDM君误会了,我显示200张的图片是仿照http://www.flashloaded.com/flashcomponents/3dwall/example6.html这里的3dwall效果那样来显示的,不过我的性能比他好太多了,嘿嘿!

flash 3d 研究所 DDM君
(2009-02-12 18:23:51)
呵呵,这个才30张我就已经觉得超多了@_@,难以想象200张的壮观~

这个性能确实是......OTL


评论人:
邮   箱: (填入邮箱,博客地址均可)

内   容: (广告和垃圾内容可能会被删除,望理解)
链接地址

验证码:(为防止机器人骚扰,请麻烦输入验证码^_^)
  

(目前需登陆方可发表)


不想添加了