随笔分类 - ActionScript
为Android开发flash
摘要:项目终于进行到目标实体性能测试和准备阶段,这次选择的实体是Android平板,此款平板采用图睿2芯片,1G内存,支持4点触控,符合我们的要求。性能测试第一步是基准测试,分别是对创建3000个空Sprite计时,然后是在Away3D渲染1000个面。空类创建在我的E5300+2G电脑上耗时2300毫秒,在平板上耗时12000毫秒,差6倍。面渲染是统计fps的,在电脑上运行最高144fps,平板上最高20。这与flash导出时是否选GPU加速没关系,可能是相关驱动没做好。这个结果差不多也是6倍。想到E5300的两个核心频率加起来差不多5GHz,而平板的CPU频率是1GHz,差距可能就在这里。接下来
阅读全文
Away3D学习笔记-空间点捕捉
摘要:项目的基本技术要求,就是能捕捉用户在舞台上点击的3D坐标。首先这涉及侦听MouseDown事件,如果Scene来侦听,当舞台上没东西时,是不会触发鼠标事件的,因此只能用Stage来侦听,而stage侦听的鼠标坐标是舞台的相对坐标,这里就需要一系列换算。基本思路就是:将舞台坐标先换算为View3D的坐标,再通过Camera与该点的连线与坐标平面相交来计算点。舞台坐标换View坐标可以以View的MouseX,MouseY属性为参数,调用Camera的unproject来计算。计算相交这部分代码不用自己写,Away3D的Plane3D对象封装了相关函数。因此代码很简洁:pl.fromNormalA
阅读全文
Away3D学习笔记-物体位置和移动
摘要:为了看清楚Away3D里物体的位置关系,首先来创建坐标系和三个平面。坐标系在Away3D里已经封装为Trident类,直接调用即可:创建参数第一个是坐标轴长度,第二个是要不要坐标轴字母。再来三个坐标平面,这里使用GridPlane类效果比较好。通过旋转创建其他两个平面。Away3D创建的几何体中心点都在其几何中心,如何要改变这个点,就需要使用movePivot方法,movePivot方法需要坐标参...
阅读全文
Away3D学习笔记-元素点选
摘要:在Flash里调试影片总是很慢很慢,关掉actionscript的警告信息后,速度似乎的确快了一点,勉强可以承受。研究Away3D卡在物体点选上,总找不到合适的监听函数一劳永逸地解决所有物体的精确点选,后来在某国外blog上看到一个球面点选的例子,但代码已经过时了,不再适用于3.6.0,于是根据他提供的思路,自己摸索了一下,搞定了点选问题。其实3.6.0把每次鼠标点中的对象和点中的几何元素都传给了...
阅读全文
AS3学习笔记--带滚动条的文本显示框类
摘要:由于调试flash总是用trace多少有点不方便,于是打算自己做一个类似的信息输出框,这个输出框应该有如下功能:1.创建简单,添加文本简单,不需要删除操作,但能清空文本。可以限制最大行数,且能动态删除最顶端的多余行。2.能相应鼠标滚轮事件3.带有滚动条,滚动条与文本内容联动带着这些目的,折腾了半天,写了个TextArea类,还是吃了AS3不熟悉的亏,很多细节问题要反复查Adobe的文档,不过总算做...
阅读全文
Away3D学习笔记--简单交互
摘要:首先是句题外话,PV3D虽然性能不错,但似乎很久不更新,而且许多功能还处于残废状态,Away3D是在PV3D基础上开发的,许多基础工作还做的好的多。所以项目对性能要求不那么高,最终选用Away3D,而非高性能的PV3D。项目需要让用户通过flash创建一系列几何体,并保存下来。作为练习,这里先尝试让用户创建最基本的几何体:平面。首先需要弄清楚Away3D中的坐标关系,Away3D采用左手坐标系,坐...
阅读全文
PV3D学习笔记-光源
摘要:PV3D里的光源似乎只有点光源,PointLight3D,而且不能直接作用于物体,必须通过接受光源的材质来传递。点光源的创建一条代码就够,引用路径org.papervision3d.lights.PointLight3D:参数true是说明光源可见。随后是创建一种接受光照的材质,PV3D里有这些材质可选:PhongMaterial,CellMaterial,GouraudMaterial三种材质的...
阅读全文
PV3D学习笔记-导入DAE模型
摘要:网上关于PV3D导入DAE模型的例子都非常多,可惜我研究了半天,一个都没成功,或者是破面问题,或者是贴图不显示,再或者贴图乱掉了。今天晚上终于搞定,心得发上来。制作模型的软件是SketchUp Pro 7.1,选这个主要是体积小,建模方便,毕竟Maya和3Ds max都上是GB的体积,SketchUp才30MB。在SketchUp中建好模,注意不能让模型成组,选择文件-导出3D模型,注意右下角的选...
阅读全文
PV3D学习笔记-基本对象创建
摘要:吃了以前没学过D3D的亏,竟然不知道3D对象的相对0点是位于其几何中心的,PV3D也采用这个原则。PV3D创建基本几何体和其他任何一种3D引擎一样简单,简单几句代码即可,需要注意的是只有继承自DisplayObject3D或DisplayObjectContainer3D的类才能直接通过scene.addChild来添加到场景。以下几何体包含路径都是org.papervision3d.object...
阅读全文
PV3D学习笔记-坐标系
摘要:为了搞清PV3D的坐标系是左手系还是右手系,最简单的办法就是在场景中画出坐标轴来。PV3D中的线对象叫Line3D,包含在org.papervision3d.core.geom.renderables中,创建格式为:五个参数中除了粗细可以直接填数字,其他4个都要先创建对象,Lines3D是包含Line3D对象的容器,包含路径是org.papervision3d.core.geom。Line3D必须...
阅读全文
PV3D和Away3D性能比较
摘要:由于项目要用到Flash开发3D动画,于是想起了曾经不知在何处看到了几个Flash流行3D类库,经过一番挑选找到PV3D和Away3D,都说PV3D性能高但不灵活,Away3D灵活但性能不高。性能的确是个很重要的考虑因素,二者性能究竟差多少,网上没有现成的答案,于是自己动手,丰衣足食。费了一番周折,运行成功PV3D和Away3D的例子,然后开始测试:测试内容:显示旋转球体,球体表面分20000个三...
阅读全文
浙公网安备 33010602011771号