as3isolib code sheet

46 篇文章 0 订阅

1

 

package

{

  

    import as3isolib.core.ClassFactory;

    import as3isolib.display.IsoView;

    import as3isolib.display.primitive.IsoBox;

    import as3isolib.display.renderers.DefaultShadowRenderer;

    import as3isolib.display.scene.IsoGrid;

    import as3isolib.display.scene.IsoScene;

    import as3isolib.geom.Pt;

    import caurina.transitions.Tweener;

    import eDpLib.events.ProxyEvent;

    import flash.display.Sprite;

    import flash.events.Event;

    import flash.events.MouseEvent;

    import flash.filters.GlowFilter;

    import flash.geom.Point;

  

    public class IsoDragExample extends Sprite

    {

  

        private var _view:IsoView;

        private var _scene:IsoScene;

        private var _box:IsoBox;

        private var _grid:IsoGrid;

        private var _dragObject:IsoBox;

        private var _dragPt:Pt;

        private var _glow:GlowFilter;

  

        public function IsoDragExample():void

        {

            _view = new IsoView();

            _view.setSize( stage.stageWidth, stage.stageHeight );

            addChild( _view );

  

            _scene = new IsoScene();

            _scene.hostContainer = this;

            _scene.styleRenderers = [ new ClassFactory( DefaultShadowRenderer ) ];

            _view.addScene( _scene );

  

            _glow = new GlowFilter( 0xFF8000, 1, 6, 6, 64 );

  

            _box = new IsoBox

            _box.setSize( 50, 50, 50 );

            _box.addEventListener( MouseEvent.ROLL_OVER, onRollOverHandler, false, 0, true );

            _box.addEventListener( MouseEvent.ROLL_OUT, onRollOutHandler, false, 0, true );

            _box.addEventListener( MouseEvent.MOUSE_DOWN, onPickup, false, 0, true );

            _scene.addChild( _box );

  

            _grid = new IsoGrid();

            _grid.cellSize = 50;

            _scene.addChild( _grid );

  

            addEventListener( Event.ENTER_FRAME, onRender, false, 0, true );

        }

  

        private function onPickup( e:ProxyEvent ):void

        {

            _dragObject = e.target as IsoBox;

            _dragPt = _view.localToIso( new Point( stage.mouseX, stage.mouseY ) );

            _dragPt.x -= _dragObject.x;

            _dragPt.y -= _dragObject.y;

  

            _dragObject.removeEventListener( MouseEvent.MOUSE_DOWN, onPickup );

  

            _dragObject.addEventListener( MouseEvent.MOUSE_UP, onDrop, false, 0, true );

            stage.addEventListener( MouseEvent.MOUSE_UP, onDrop, false, 0, true );

            stage.addEventListener( MouseEvent.MOUSE_MOVE, onMoveObject, false, 0, true );

  

            Tweener.addTween( _dragObject, { z:25, time:0.5 } );

        }

  

        private function onDrop( e:Event ):void

        {

            _dragObject.removeEventListener( MouseEvent.MOUSE_UP, onDrop );

            stage.removeEventListener( MouseEvent.MOUSE_UP, onDrop );

            stage.removeEventListener( MouseEvent.MOUSE_MOVE, onMoveObject );

  

            _dragObject.addEventListener( MouseEvent.MOUSE_DOWN, onPickup, false, 0, true );

  

            Tweener.addTween( _dragObject, { z:0, time:0.5 } );

        }

  

        private function onMoveObject( e:MouseEvent ):void

        {

            var pt:Pt = _view.localToIso( new Point( stage.mouseX, stage.mouseY ) );

  

            _dragObject.moveTo( pt.x - _dragPt.x, pt.y - _dragPt.y, _dragObject.z );

        }

  

        private function onRollOverHandler( e:ProxyEvent ):void

        {

            ( e.target as IsoBox ).container.filters = [ _glow ];

        }

  

        private function onRollOutHandler( e:ProxyEvent ):void

        {

            ( e.target as IsoBox ).container.filters = [];

        }

  

        private function onRender( e:Event ):void

        {

            _scene.render();

        }

  

    }

  

}

 

 

2

package
{
  
     import as3isolib.display.IsoView;
     import as3isolib.display.primitive.IsoBox;
     import as3isolib.display.scene.IsoGrid;
     import as3isolib.display.scene.IsoScene;
     import caurina.transitions.Tweener;
     import flash.display.Sprite;
     import flash.events.Event;
     import flash.events.MouseEvent;
     import flash.geom.Point;
  
     public class IsoViewExample extends Sprite
     {
  
         private var _view:IsoView;
         private var _scene:IsoScene;
         private var _box:IsoBox;
         private var _grid:IsoGrid;
  
         private var _panPt:Point;
         private var _zoom: Number = 1 ;
  
         public function IsoViewExample(): void
         {
             _view = new IsoView();
             _view.setSize( stage.stageWidth, stage.stageHeight );
             addChild( _view );
  
             _scene = new IsoScene();
             _scene.hostContainer = this ;
             _view.addScene( _scene );
  
             _box = new IsoBox();
             _box.setSize( 50 , 50 , 50 );
             _scene.addChild( _box );
  
             _grid = new IsoGrid();
             _grid.cellSize = 50 ;
             _scene.addChild( _grid );
  
             stage.addEventListener( MouseEvent.MOUSE_DOWN, onStartPan, false , 0 , true );
             stage.addEventListener( MouseEvent.MOUSE_WHEEL, onZoom, false , 0 , true );
             addEventListener( Event.ENTER_FRAME, onRender, false , 0 , true );
         }
  
         private function onStartPan( e:MouseEvent ): void
         {
             _panPt = new Point( stage.mouseX, stage.mouseY );
  
             removeEventListener( MouseEvent.MOUSE_DOWN, onStartPan );
  
             stage.addEventListener( MouseEvent.MOUSE_MOVE, onPan, false , 0 , true );
             stage.addEventListener( MouseEvent.MOUSE_UP, onStopPan, false , 0 , true );
         }
  
         private function onPan( e:MouseEvent ): void
         {
             _view.pan( _panPt.x - stage.mouseX, _panPt.y - stage.mouseY );
  
             _panPt.x = stage.mouseX;
             _panPt.y = stage.mouseY;
         }
  
         private function onStopPan( e:MouseEvent ): void
         {
             stage.removeEventListener( MouseEvent.MOUSE_MOVE, onPan );
             stage.removeEventListener( MouseEvent.MOUSE_UP, onStopPan );
  
             stage.addEventListener( MouseEvent.MOUSE_DOWN, onStartPan, false , 0 , true );
         }
  
         private function onZoom( e:MouseEvent ): void
         {
             e.delta > 0 ? _zoom += 0.5 : _zoom -= 0.5 ;
  
             Tweener.addTween( _view, { currentZoom:_zoom, time: 0.5 } );
         }
  
         private function onRender( e:Event ): void
         {
             _scene.render();
         }
  
     }
  
}

3

 

package
{
  
     import as3isolib.display.IsoView;
     import as3isolib.display.primitive.IsoBox;
     import as3isolib.display.scene.IsoGrid;
     import as3isolib.display.scene.IsoScene;
     import flash.display.Sprite;
  
     public class IsoSceneExample extends Sprite
     {
  
         private var _view:IsoView;
         private var _scene:IsoScene;
         private var _box:IsoBox;
         private var _grid:IsoGrid;
  
         public function IsoSceneExample(): void
         {
             _view = new IsoView();
             _view.setSize( stage.stageWidth, stage.stageHeight );
             addChild( _view );
  
             _scene = new IsoScene();
             _scene.hostContainer = this ;
             _view.addScene( _scene );
  
             _box = new IsoBox();
             _box.setSize( 50 , 50 , 50 );
             _scene.addChild( _box );
  
             _grid = new IsoGrid();
             _grid.cellSize = 50 ;
             _scene.addChild( _grid );
  
             _scene.render();
         }
  
     }
  
}

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值