Flash自定义类:多久没人玩回到待机

目录

一、目的:

1、写了很多在关键帧中的没人玩回到待机,现在想写在自定义类中,方便以后直接调用

二、参考

1、Flash没人玩回到某一帧:关键帧中编写

2、AS3自定义事件以及发送事件(1)——发送事件

二、注意:

1、有时候发现flash中使用定时器没人玩回到待机很正常,但是使用MFC打开Flash就会出现无法没人玩回到待机,最终测试发现定时器的原因

四、操作:使用版本2.1

1、设置:参考使用版本2.0

1、自定义类:MyTimer_longNoPlay

1、关键帧调用

四、操作:使用版本2.0(废弃)

1、自定义类:MyTimer_longNoPlay

1、舞台关键帧创建这个自定义类

1、效果

1、文件夹布置

四、操作:使用版本1.0(废弃)

1、自定义类:MyTimer_longNoPlay

1、舞台关键帧创建这个自定义类

 1、效果

1、文件夹布置


一、目的:

1、写了很多在关键帧中的没人玩回到待机,现在想写在自定义类中,方便以后直接调用

 

二、参考

1、Flash没人玩回到某一帧:关键帧中编写

https://blog.csdn.net/qq_40544338/article/details/85782698

  • 总结:很好,写在关键帧中

 

2、AS3自定义事件以及发送事件(1)——发送事件

https://blog.csdn.net/qq_40544338/article/details/108992347

  • 总结:自定义中可以给舞台发送事件

 

二、注意:

1、有时候发现flash中使用定时器没人玩回到待机很正常,但是使用MFC打开Flash就会出现无法没人玩回到待机,最终测试发现定时器的原因

  • 总结:定时器要写成这样的,定时器次数设置为1
timer_delay_noPlay=new Timer(1000,1);

if(!timer_delay_noPlay.hasEventListener(TimerEvent.TIMER_COMPLETE))

{

timer_delay_noPlay.addEventListener(TimerEvent.TIMER_COMPLETE,TIMER_COMPLETE_timer_delay_noPlay);

}
  • 总结:不能写成这样
timer_delay_noPlay=new Timer(1000);

if(!timer_delay_noPlay.hasEventListener(TimerEvent.TIMER))

{

timer_delay_noPlay.addEventListener(TimerEvent.TIMER,TIMER_timer_delay_noPlay);

}

 

 

四、操作:使用版本2.1

1、设置:参考使用版本2.0

 

1、自定义类:MyTimer_longNoPlay

/**********************/
// 作者:xzy
//功能:多久没人玩定时器,方便舞台调用,无人玩回到待机
//版本:2.1(20201028)
/**********************/
/*
完善:
2.1比2.0:
1、添加Clear函数,为了移除所有添加的事件等
2、将构造函数里面区分,单独设置一个Create函数,作为创建函数

2.0比1.0(20200330)添加:
定时器完成给舞台发送消息
*/

package MyLibrary
{
	import flash.display.MovieClip;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.events.Event;

	//功能:没人玩
	public class MyTimer_longNoPlay extends MovieClip
	{
		static public const START:String = "START";
		static public const OVER:String = "OVER";

		//定时器:没人玩
		public var timer_delay_noPlay:Timer = null;

		//是否完成了这个定时器
		public var bIsCompleteTimer:Boolean;

		//功能:构造函数:没人玩
		//参数1:延时多久没人玩
		public function MyTimer_longNoPlay()
		{
		}

		/*
		功能:创建定时器等
		参数1:延时多久没人玩
		*/
		public function Create(_delay:int)
		{
			bIsCompleteTimer = false;

			if (timer_delay_noPlay==null)
			{
				timer_delay_noPlay = new Timer(_delay,1);
				if (! timer_delay_noPlay.hasEventListener(TimerEvent.TIMER_COMPLETE))
				{
					timer_delay_noPlay.addEventListener(TimerEvent.TIMER_COMPLETE,TIMER_COMPLETE_timer_delay_noPlay);
				}
			}
		}

		/*
		功能:移除定时器等
		*/
		public function Clear()
		{
			if (timer_delay_noPlay!=null)
			{
				timer_delay_noPlay.stop();

				if (timer_delay_noPlay.hasEventListener(TimerEvent.TIMER_COMPLETE))
				{
					timer_delay_noPlay.removeEventListener(TimerEvent.TIMER_COMPLETE,TIMER_COMPLETE_timer_delay_noPlay);
				}

				timer_delay_noPlay = null;
			}
		}

		//功能:设置:开启:没人玩就回到待机定时器
		public function Set_startTimer()
		{
			timer_delay_noPlay.start();
		}

		//功能:设置:暂停:没人玩就回到待机定时器;
		public function Set_stopTimer()
		{
			timer_delay_noPlay.stop();
		}

		//功能:重置:暂停:没人玩就回到待机定时器;
		public function Set_resetTimer()
		{
			timer_delay_noPlay.reset();
		}

		public function GetIsTIMER_COMPLETE():Boolean
		{
			return bIsCompleteTimer;
		}

		public function TIMER_COMPLETE_timer_delay_noPlay(e:TimerEvent)
		{
			Set_stopTimer();

			//TODO:定时器完成了,返回一个值
			bIsCompleteTimer = true;

			//分发OVER事件,
			dispatchEvent(new Event(OVER));//新建事件传入String参数
		}

	}
}

 

1、关键帧调用

导入包+声明

//没人玩回到待机
import MyLibrary.MyTimer_longNoPlay;

//没人玩回到待机
var myTimer_longNoPlay:MyTimer_longNoPlay = null;

创建

	//定时器:没人玩回到待机
	if (myTimer_longNoPlay==null)
	{
		myTimer_longNoPlay = new MyTimer_longNoPlay();		
	}
	if (! myTimer_longNoPlay.hasEventListener(MyTimer_longNoPlay.OVER))
	{
		myTimer_longNoPlay.addEventListener(MyTimer_longNoPlay.OVER,OVER_myTimer_longNoPlay);
	}
	myTimer_longNoPlay.Create(noPlay2standby);
	myTimer_longNoPlay.Set_startTimer();

 移除

	//定时器:没人玩回到待机
	if (myTimer_longNoPlay!=null)
	{
		if (myTimer_longNoPlay.hasEventListener(MyTimer_longNoPlay.OVER))
		{
			myTimer_longNoPlay.removeEventListener(MyTimer_longNoPlay.OVER,OVER_myTimer_longNoPlay);
		}
		myTimer_longNoPlay.Clear();
		myTimer_longNoPlay = null;
	}

 响应自定义类发送来的事件

//长时间没人玩回到待机
function OVER_myTimer_longNoPlay(e:Event)
{
	//长时间没人玩回到待机
	Destroy_game();
	gotoAndStop("待机");
}

四、操作:使用版本2.0(废弃)

1、自定义类:MyTimer_longNoPlay

/**********************/
// 作者:xzy
//功能:多久没人玩定时器,方便舞台调用,无人玩回到待机
//版本:2.0(20201010)
/**********************/
/*
完善:
2.0比1.0(20200330)添加:定时器完成给舞台发送消息
*/

package MyLibrary
{
	import flash.display.MovieClip;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	import flash.events.Event;

	//功能:没人玩
	public class MyTimer_longNoPlay extends MovieClip
	{
		static public const START:String = "START";
		static public const OVER:String = "OVER";

		//定时器:没人玩
		public var timer_delay_noPlay:Timer = null;

		//是否完成了这个定时器
		public var bIsCompleteTimer:Boolean;

		//功能:构造函数:没人玩
		//参数1:延时多久没人玩
		public function MyTimer_longNoPlay(_delay:int)
		{
			bIsCompleteTimer = false;

			if (timer_delay_noPlay==null)
			{
				timer_delay_noPlay = new Timer(_delay,1);
				if (! timer_delay_noPlay.hasEventListener(TimerEvent.TIMER_COMPLETE))
				{
					timer_delay_noPlay.addEventListener(TimerEvent.TIMER_COMPLETE,TIMER_COMPLETE_timer_delay_noPlay);
				}
			}

		}

		//功能:设置:开启:没人玩就回到待机定时器
		public function Set_startTimer()
		{
			timer_delay_noPlay.start();
		}

		//功能:设置:暂停:没人玩就回到待机定时器;
		public function Set_stopTimer()
		{			
			timer_delay_noPlay.stop();
		}

		//功能:重置:暂停:没人玩就回到待机定时器;
		public function Set_resetTimer()
		{
			timer_delay_noPlay.reset();
		}

		public function GetIsTIMER_COMPLETE():Boolean
		{
			return bIsCompleteTimer;
		}

		public function TIMER_COMPLETE_timer_delay_noPlay(e:TimerEvent)
		{
			Set_stopTimer();
			
			//TODO:定时器完成了,返回一个值
			bIsCompleteTimer = true;
			
			//分发OVER事件,
			dispatchEvent(new Event(OVER));//新建事件传入String参数
		}

	}
}

1、舞台关键帧创建这个自定义类

//没人玩回到待机
import MyLibrary.MyTimer_longNoPlay;

//没人玩回到待机
var myTimer_longNoPlay:MyTimer_longNoPlay=null;

Start_game();

//功能:初始化
function Start_game()
{
	//定时器:没人玩回到待机
	if (myTimer_longNoPlay==null)
	{
		myTimer_longNoPlay = new MyTimer_longNoPlay(noPlay2standby);
	}
	if (! myTimer_longNoPlay.hasEventListener(MyTimer_longNoPlay.OVER))
	{
		myTimer_longNoPlay.addEventListener(MyTimer_longNoPlay.OVER,OVER_myTimer_longNoPlay);
	}
	myTimer_longNoPlay.Set_startTimer();

}

//移除所有的定时器
function RemoveAllTimer()
{
	//定时器:没人玩回到待机
	if (myTimer_longNoPlay!=null)
	{
		if (myTimer_longNoPlay.hasEventListener(MyTimer_longNoPlay.OVER))
		{
			myTimer_longNoPlay.removeEventListener(MyTimer_longNoPlay.OVER,OVER_myTimer_longNoPlay);
		}
		myTimer_longNoPlay = null;
	}

}

//长时间没人玩回到待机
function OVER_myTimer_longNoPlay(e:Event)
{
	Destroy_game();
	gotoAndStop("待机");
}

1、效果

1、文件夹布置

 

四、操作:使用版本1.0(废弃)

1、自定义类:MyTimer_longNoPlay

/**********************/
// 作者:xzy
//功能:多久没人玩定时器,方便舞台调用,无人玩回到待机
//日期:20200330
//版本:1.0
/**********************/

package MyLibrary
{
	import flash.display.MovieClip;
	import flash.utils.Timer;
	import flash.events.TimerEvent;
	
	//功能:没人玩
	public class MyTimer_longNoPlay extends MovieClip
	{
		//定时器:没人玩
		public var timer_delay_noPlay:Timer;		
		
		//是否完成了这个定时器
		public var bIsCompleteTimer:Boolean;
			
		//	功能:构造函数:没人玩
		//参数1:延时多久没人玩
		public function MyTimer_longNoPlay(_delay:int)
		{			
			bIsCompleteTimer=false;
			
			timer_delay_noPlay=new Timer(_delay,1);
			if(!timer_delay_noPlay.hasEventListener(TimerEvent.TIMER_COMPLETE))
			{
				timer_delay_noPlay.addEventListener(TimerEvent.TIMER_COMPLETE,TIMER_COMPLETE_timer_delay_noPlay);
			}						
		}
		
		//功能:设置:开启:没人玩就回到待机定时器
		public function Set_startTimer()
		{
			bIsCompleteTimer=false;
			timer_delay_noPlay.start();
		}
		
		//功能:设置:暂停:没人玩就回到待机定时器
		public function Set_stopTimer()
		{
			bIsCompleteTimer=false;
			timer_delay_noPlay.stop();
		}
		
		//功能:重置:暂停:没人玩就回到待机定时器
		public function Set_resetTimer()
		{
			bIsCompleteTimer=false;
			timer_delay_noPlay.reset();
		}
		
		public function GetIsTIMER_COMPLETE():Boolean
		{			
			return bIsCompleteTimer;
		}
		
		public function TIMER_COMPLETE_timer_delay_noPlay(e:TimerEvent)
		{
			//TODO:定时器完成了,返回一个值
			bIsCompleteTimer=true;
		}

	}
}

1、舞台关键帧创建这个自定义类

import flash.events.Event;

import MyLibrary.MyTimer_longNoPlay;

var myTimer_longNoPlay:MyTimer_longNoPlay = null;

Start();

//功能:初始化
function Start()
{
	if (myTimer_longNoPlay==null)
	{
		myTimer_longNoPlay = new MyTimer_longNoPlay(5000);
	}

	myTimer_longNoPlay.Set_resetTimer();
	myTimer_longNoPlay.Set_startTimer();

	if (! stage.hasEventListener(Event.ENTER_FRAME))
	{
		stage.addEventListener(Event.ENTER_FRAME,ENTER_FRAME);
	}

}

function Destroy()
{

}

//功能:帧监听=Update
function ENTER_FRAME(e:Event)
{
	if (myTimer_longNoPlay.GetIsTIMER_COMPLETE())
	{
		trace("自定义的类时间到了!");
		if (stage.hasEventListener(Event.ENTER_FRAME))
		{
			stage.removeEventListener(Event.ENTER_FRAME,ENTER_FRAME);
		}
		//TODO:返回待机界面
	}

}

 1、效果

1、文件夹布置

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值