DFdou's Blog Life is short,Be yourself.

7kankan11bookekzwС˵Ҫ · uawx鶼Ķ ðƴӢ ޴½
2107/093

Flash-Five3d类学习

早上在Google Reader里看到的一个第三方类,试了下效果不错,就准备去下载个类库,结果发现five3d.mathieu-badimon.com 居然被河蟹了?顺便骂一句,Picasa也被河蟹了,MLGBZ的!GFW,bullshit!
OK,骂完了,先来2个Demo,一个是文本的:


另一个是图形的:



这里贴下图形Demo的文档类Codes:

package {
	import flash.display.StageScaleMode;
	import flash.display.StageAlign;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	//如果是Flash CS3,一定要在库里边加一个Button组件,不然会报错,CS4版则没有这个问题~
	import fl.controls.Button;

	//导入five3D类
	import five3D.display.DynamicText3D;
	import five3D.display.Scene3D;
	import five3D.display.Shape3D;
	import five3D.display.Sprite3D;
	import five3D.typography.HelveticaBold;
	import five3D.utils.Drawing;

	//这个缓动类,就不介绍了
	import gs.TweenLite;
	import gs.TweenMax;

	public class Five3dDemo extends Sprite {

		var scene:Scene3D;
		var STAGEW:uint = stage.stageWidth;
		var STAGEH:uint = stage.stageHeight;
		var TOTAL:uint = 350;

		public function Five3dDemo() {
			//舞台缩放和对齐
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			init();
		}
		private function init():void {
			//建立一个Scene3D实例
			scene = new Scene3D();
			addChild(scene);

			drawShape();
			drawButton();
		}
		private function drawShape():void{
			for (var i:uint=0; i< = TOTAL; i++) {
				//建立353个方块
				var _obj:Shape3D = new Shape3D();
				//生成随机颜色
				var color:uint = rand(0,0xffffff);
				_obj.graphics3D.beginFill(color);
				//画方块
				_obj.graphics3D.drawRect(-10, -10, 20, 20);
				_obj.graphics3D.endFill();
				//让图形居中摆放
				_obj.x = (STAGEW-20)/2;
				_obj.y = (STAGEH-20)/2;
				scene.addChild(_obj);
				reMove(_obj,0);
			}
		}
		//将移动效果改成了TweenMax的曲线运动,更3D效果
		private function reMove(_obj:Object,_time:uint){
			TweenMax.to(_obj, 1.5, {delay:_time,x:rand(0,STAGEW),y:rand(0,STAGEH), z:rand(0,(STAGEW+STAGEH)/2), bezier:[{x:rand(0,STAGEW), y:rand(0,STAGEH), z:rand(0,(STAGEW+STAGEH)/2)},{x:rand(0,STAGEW), y:rand(0,STAGEH), z:rand(0,(STAGEW+STAGEH)/2)}], scaleX:rand(0,1.5), scaleY:rand(0,1.5), scaleZ:rand(0,1.5), rotationX:rand(-50,50),rotationY:rand(-50,50),rotationZ:rand(-50,50), alpha:rand(0.3,1), onComplete:reMove,onCompleteParams:[_obj,1]});
			//TweenLite.to(_obj,1.5,{delay:_time,x:rand(0,STAGEW),y:rand(0,STAGEH), z:rand(0,(STAGEW+STAGEH)/2), scaleX:rand(0,1.5), scaleY:rand(0,1.5), scaleZ:rand(0,1.5), rotationX:rand(-50,50),rotationY:rand(-50,50),rotationZ:rand(-50,50), alpha:rand(0.3,1), onComplete:reMove,onCompleteParams:[_obj]});
		}
		//在场景里加入2个按钮
		private function drawButton():void{
			var disBtn:Button = new Button();
			disBtn.label = "排序";
			disBtn.x = 20;
			disBtn.y = 20;
			addChild(disBtn);
			disBtn.addEventListener(MouseEvent.CLICK,displayNumber);

			var reDisBtn:Button = new Button();
			reDisBtn.label = "打乱";
			reDisBtn.x = 20;
			reDisBtn.y = 50;
			addChild(reDisBtn);
			reDisBtn.addEventListener(MouseEvent.CLICK,reDisplayNumber);
		}
		//让方块顺序摆放
		private function displayNumber(_evt:MouseEvent){
			for(var i:uint=0; i<= TOTAL; i++){
				//TweenLite.killTweensOf(scene.getChildAt(i), true);
				TweenMax.killTweensOf(scene.getChildAt(i), true);
				var _obj:Object = scene.getChildAt(i);
				TweenLite.to(_obj,1.5,{x:(i%27*20+40),y:(int(i/27)*20+110), z:0, scaleX:1, scaleY:1, scaleZ:1, rotationX:0,rotationY:0,rotationZ:0});
			}
		}
		//打乱方块排列
		private function reDisplayNumber(_evt:MouseEvent){
			for(var i:uint=0; i<= TOTAL; i++){
				var _obj:Object = scene.getChildAt(i);
				reMove(_obj,0);
			}
		}
		//生成startNum到endNum的随机数
		private function rand(startNum,endNum){
			return (Math.random()*(endNum-startNum) + startNum);
		}
	}
}

这个效果可以干嘛呢?可以用来做Loading动画,或者给某些癖好的人做乱七八糟横竖乱跑的动画效果~
Five3d的官方网站:five3d.mathieu-badimon.com,请自觉翻墙。
Google Code 下载地址:
http://code.google.com/p/five3d/downloads/list
唉,不知道是code插件的问题还是WP本身的问题,循环体内的"<"总是被解析成XML。。。

Some Related Posts

Comments (3) Trackbacks (0)
  1. :no 有点卡,~哈哈

    [Reply]

    Anonymous Reply:

    @DFdou,
    your code ‘< =' should be '<='

    [Reply]

    DFdou Reply:

    @, OH,.,it’s my fault..


Leave a comment

:zhuang :xizao :wuwu :wenhao :wc :touxiang :shuaya :shuajian :shengtian :paopao :no :meinv :maonv :loveu :leilei :kua :jrjr :dahan :chi :chaocai :byebye


CommentLuv Enabled

No trackbacks yet.