isolib对像结合TweenLite的运动

本文介绍了一个使用AS3和IsoLib库创建的3D等轴测视图应用示例。该示例实现了通过鼠标点击改变3D盒子的位置,并通过TweenLite平滑过渡到新的位置。文章展示了如何初始化场景、添加网格和3D对象,以及如何响应鼠标事件进行动画处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注:每一次运动改变位置,都要重新渲染scene.render() 以此来刷新屏幕

 

 

 

源码:;

 

 

package {
 // import as3isolib.core.IIsoDisplayObject;
 import as3isolib.display.IsoView;
 import as3isolib.display.primitive.IsoBox;
 import as3isolib.display.scene.IsoGrid;
 import as3isolib.display.scene.IsoScene;
 import as3isolib.geom.IsoMath;
 import as3isolib.geom.Pt;
 import eDpLib.events.ProxyEvent;

 import com.greensock.TweenLite;
 import flash.display.Sprite;
 import flash.events.Event;
 import flash.events.MouseEvent;

 public class Main extends Sprite {
  private var box:IsoBox;
  private var scene:IsoScene;

  public function Main() {
   scene=new IsoScene  ;

   var g:IsoGrid=new IsoGrid  ;
   g.showOrigin=false;
   g.addEventListener(MouseEvent.CLICK,grid_mouseHandler);
   scene.addChild(g);

   box=new IsoBox  ;
   box.setSize(25,25,25);
   scene.addChild(box);

   var view:IsoView=new IsoView()  ;
   view.clipContent=false;//默认值为true
   view.y=50;
   view.setSize(150,100);
   view.addScene(scene);//look in the future to be able to add more scenes
   addChild(view);

   scene.render();
  }

  private var tween:TweenLite;
  //计数器
  //private var num:int=0;
  private function grid_mouseHandler(Evt:ProxyEvent):void {
   var evt:MouseEvent=MouseEvent(Evt.targetEvent);// 转化事件类型

   //将其转化为isolib里的坐标
   var pt:Pt=new Pt(evt.localX,evt.localY);
   trace("开始的:"+pt.x);
   IsoMath.screenToIso(pt);//得到转化后的isolib坐标 
  trace("pt为:"+pt.x);

   TweenLite.to(box,0,{x:pt.x,y:pt.y,onComplete:myFunction});
   //num++;
   //trace(num);

  }

  private function myFunction():void {
   scene.render();
  trace("OK");

  }

 

 }
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值