Flash与3D编程探秘(五)- 摄像机旋转和移动
2008-11-12 11:51:23 来源:WEB开发网3. 写一个循环函数,在每一次执行时刷新舞台上的所有的物体。
functionrun(e:Event)
{
if(camera.panning>2*PI)
camera.panning-=2*PI;
if(camera.panning<-1*2*PI)
camera.panning+=2*PI;
for(vari=0;i<scene.numChildren;i++) //updatealltheballsonthescreen
{
display(scene.getChildAt(i));
}
}
4. 下面设置一些键盘相应事件,使用WS我们可以使摄像机前进和后退,AD旋转我们的摄像机。键盘事件我们在前面提到过,就不多说了,如果有什么问题的话可以查看一下前面的例子。
functionrun(e:Event)
{
if(camera.panning>2*PI)
camera.panning-=2*PI;
if(camera.panning<-1*2*PI)
camera.panning+=2*PI;
for(vari=0;i<scene.numChildren;i++) //updatealltheballsonthescreen
{
display(scene.getChildAt(i));
}
}
functionkey_down(e:KeyboardEvent):void
{
if(e.keyCode==65)
pan_left=true;
if(e.keyCode==68)
pan_right=true;
if(e.keyCode==87)
move_forward=true;
if(e.keyCode==83)
move_backward=true;
}
functionkey_up(e:KeyboardEvent):void
{
if(e.keyCode==65)
pan_left=false;
if(e.keyCode==68)
pan_right=false;
if(e.keyCode==87)
move_forward=false;
if(e.keyCode==83)
move_backward=false;
}
functionkey_response(e:Event):void
{
if(pan_left)
camera.panning+=0.015; //increasethepanningangle
if(pan_right)
camera.panning-=0.015; //decreasethepanningangle
if(move_forward)
{
movement=20;
}
if(move_backward)
{
movement=-20;
}
if(move_forward||move_backward)
{
camera.x+=Math.sin(camera.panning)*movement;
camera.z+=Math.cos(camera.panning)*movement;
}
}
//addloopeventlistener
this.addEventListener(Event.ENTER_FRAME,run);
this.addEventListener(Event.ENTER_FRAME,key_response);
stage.addEventListener(KeyboardEvent.KEY_DOWN,key_down);
stage.addEventListener(KeyboardEvent.KEY_UP,key_up);
- ››flash文件的压缩方法(swf文件压缩瘦身)
- ››Flash鼠绘教程:临摹徐悲鸿的骏马图
- ››Flash实例:AS3制作茶杯震动动画
- ››Flash AS 3.0实例教程:Main类打造发散效果
- ››Flash cs3仿真艺术设计3.6:运用遮罩打造焦点效果...
- ››Flash cs3仿真艺术设计4.1:阴影的基本运用
- ››Flash CS4教程:3d工具实例和骨骼工具
- ››flash加载外部文本文件的3种方法
- ››flash在有限的页面内制作大的地图
- ››Flash教程:AS代码制作计时器方法
- ››Flash AS教程:propertydata问题解决
- ››FlashFXP v4.0.0 Build 1486 RC2 [烈火汉化]
更多精彩
赞助商链接