注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

爱生活,爱自己,爱思考

宜昌 提气儿喊

 
 
 

日志

 
 

flash As3 事件常用代码  

2011-11-29 20:04:00|  分类: 信息技术 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

基本格式:

import flash.events.MouseEvent

import flash.display

a.addEventListener(MouseEvent.CLICK,playFun);
function playFun(evt:MouseEvent):void
{
    b.play();
}

一般只要跟键盘有关的代码,直接测试的时候,一定记得禁用快捷键。
在测试的时候。在“控制”---“禁用快捷键”前面打上勾。

设置舞台中的默认焦点:
stage.focus=my_text;

如果想让MC有效。需要添加:
my_mc.buttonMode=true;

--------------------------------------

对场景中舞台跟MC分别添加鼠标单击监听:

function testit(e:MouseEvent):void {
switch (e.target) {
case my_text :
trace("you click my_text!");
break;
case stage :
trace("you clicked stage!");
break;
}
}
stage.addEventListener(MouseEvent.CLICK,testit);

场景中MC的双击侦听:
kingda_mc.doubleClickEnabled = true;
kingda_mc.addEventListener(MouseEvent.DOUBLE_CLICK,clickHandler);
function clickHandler(event:MouseEvent):void{
 trace("哈哈,双击我了!");
}


一般MC的键盘ENTER键监听:
_pager_mc.addEventListener(KeyboardEvent.KEY_DOWN, keyEnter);
function keyEnter(event : KeyboardEvent):void {
if (event.keyCode==13) {
_pager_mc.removeEventListener(KeyboardEvent.KEY_DOWN, keyEnter);
trace("it");
}
}

场景中对MC以及场景分别加以键盘ENTER监听:
function keyEnter(event : KeyboardEvent):void {
if (event.keyCode==13) {
switch (event.target) {
case my_text :
trace("it");
break;
default :
trace("you clicked stage");
break;
}

}
}
stage.addEventListener(KeyboardEvent.KEY_DOWN, keyEnter);

---------------------------------------
移除事件侦听
方法1:侦听Event.ADDED Event.REMOVED,Event.REMOVE_FROME_STAGE方法
            Event.ADDED的时候,就添加您需要的侦听
            Event. REMOVED的时候,就移除您需要的侦听
            或者   Event.REMOVE_FROME_STAGE 的时候,就移除您需要的侦听

            注意:侦听REMOVED的话,你的元件理由按钮,你就惨了。因为你的

鼠标一移动到按钮上。你的mc就会接受到REMOVED。并且mc中只要有child remove

掉。mc也会接受到REMOVED。 所以最好用 REMOVE_FROME_STAGE
            适合用在,场景中经常用到的元件。如:好友列表,信息版面
   
方法2:使用
            Public Class evtHolder extends Object{
              Public var A
              Public var B
Public var C
              Public function evtHolder(a,b,c):void{
                A=a;B=b;C=c;
}
}

Var evtArray:Array=[];
//添加事件侦听到数组中
            addMyListener(a,b,c):void{
              if(a){
a.addEventListener(b,c);
evtArray.push(new evtHolder(a,b,c));

}
}
//移除侦听
Var i:int=0
Var l:int= evtArray.length
While(i++<l){
  removeMyListener(evtArray[i].A, evtArray[i].B, evtArray[i].C)
}
removeMyListener(a,b,c):void{
  if(a){
    a.removeEventListener(b,c);
}
}

----------------------------------------

多个场景(比如三个)的侦听,可以用stage,然后用scene来作判断

stop();
stage.addEventListener(MouseEvent.CLICK,clickfun);
function clickfun(e:MouseEvent):void{
 var scene:Scene = currentScene;
 switch(scene.name){
  case "scene1":
  gotoAndPlay(1,"scene2");
  trace("scene1");
  break;
  case "scene2":
  gotoAndPlay(1,"scene1");
  trace("scene2");
  break;
 }
}

-----------------------------------

场景中的鼠标移动,MC跟移动

stage.addEventListener(MouseEvent.MOUSE_MOVE,f)  function f(e:MouseEvent){  mc.x=stage.width/2-e.stageX//中心对称移动,也可以由自己的函数编写!  }


  评论这张
 
阅读(184)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017