每天学一点flash(84) 翻转(2)

     今天 继续做 上星期的实验,在家里写的程序一般很懒惰去用高级一点第三方类,很多事情就想用一些原始办法去实现,往往发现时间效率跟不上去,这样去折磨自己。其实就想用写一点原始的东西,其他就没什么了。

        今天这个程序只是加多一个额外参数,最初的目的只是想实现多圈翻转之后就进行缓冲慢下来的效果,目前这个办法去实现还不够理想,定下的参数还过于死板,下次抽点时间去改善这个玩意。

     下面只是增加一个圈数参数,可以让图片翻转多少次后慢慢停下来。

     基本想做的实验就是这种玩意,递减地旋转!看看下个星期想到其他办法去改进一下。今晚就到此为止了。

  

var data:Array = [new bitmapDataA(0,0),new bitmapDataB(0,0)];//准备两张位图

var effect:FilpEffect=new FilpEffect();
effect.x=250;
effect.y=200;
addChild(effect);
effect.fill(data[0],data[1]);

effect.addEventListener(MouseEvent.CLICK,onFilp);

function onFilp(event:MouseEvent):void
{
	effect.rest();
	effect.doEffect(5);	
}



   

package 
{
	import flash.display.Sprite;
	import flash.events.*;
	import flash.display.BitmapData;
	import flash.display.Bitmap;

	public class FilpEffect extends Sprite
	{
		private var data:Array = [];
		public var speed:Number = 20;
		private var isFilp:Boolean = false;
		private var bitmap:Bitmap;
		private var count:Number=0;
		private var isComplete:Boolean = false;
		private var turns:int;//圈数
		private var currentTurns:int;//当前圈数
        
		private var maxValue:int = 85;
		private var isOver:Boolean = false;
		private var isOver180:Boolean=false;
		private var a:Number=0.1;
		
		public function FilpEffect()
		{
			bitmap=new Bitmap();
			addChild(bitmap);
		}

		//填充两个面的位图
		public function fill(topBmpData:BitmapData,bottomBmpData:BitmapData):void
		{
			data.push(topBmpData,bottomBmpData);
			bitmap.bitmapData = data[0];
			bitmap.x =  -  bitmap.width / 2;
			bitmap.y =  -  bitmap.height / 2;
		}

		//播放特效 ,圈数
		public function doEffect(turns:int=1,rotaX:int=0):void
		{
			if (! isFilp)
			{
				addEventListener(Event.ENTER_FRAME,onFilp);
				isFilp = true;
				this.rotationX=rotaX;
				this.turns = turns;//加入翻转的圈数
			}
		}
        
 
		private function onFilp(event:Event):void
		{
			count +=speed;
			speed-=a;
			this.rotationY = count % 360;
			if (! isOver && count > maxValue)
			{
				bitmap.bitmapData = (bitmap.bitmapData ==data[0]) ? data[1]:data[0] ;
				this.scaleX = this.scaleX ==1?-1:1;
				isOver = true;
				maxValue = (maxValue == 265) ? 85:265;
			}

			if (! isComplete && isOver && count >265)
			{
				isOver = false;
				isComplete = true;
			}

             if(count>=180 && !isOver180)
			 {
				 currentTurns++;
				 isOver180=true;				 
			 }
    
			if (count>=360 )
			{
				isComplete = false;
				count = 0;
				isOver = false;
				isOver180=false;
			}
			

			if (turns==currentTurns)
			{
				removeEventListener(Event.ENTER_FRAME,onFilp);
				currentTurns = 0;
				isFilp = false;
				speed=20;
				count = 0;
				isComplete = false;
				isOver = false;
				isOver180=false;
				maxValue=85;
				
			}
		}

		//重设默认
		public function rest():void
		{
			if (data[0])
			{
				
				bitmap.bitmapData = data[0];
				this.scaleX = 1;
			}
		}


	}
}


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值