zoukankan      html  css  js  c++  java
  • Flash/Flex学习笔记(35):如何正确监听Stage对象的事件

    如果想在一个自定义类中注册对stage对象的监听事件,然后在另一个文档类中使用该类的实例(或在fla的时间轴上使用该类的实例),你会很郁闷的发现:在构造函数中始终无法引用到this.stage(用trace(this.stge)会一直返回null),既然引用都得不到,当然也就无法注册事件了,正确的做法如下:

    package{
    	
    	import flash.display.Sprite;
    	import flash.events.Event;
    	import flash.events.MouseEvent;
    	
    	public class MyClass extends Sprite{
    		
    		public function MyClass(){
    			trace("MyClass 构造函数被调用了...");			
    			trace(this.stage);//输出null			
    			addEventListener(Event.ADDED_TO_STAGE,AddedToStageHandler);
    		}
    		
    		function AddedToStageHandler(e:Event):void{
    			trace(this.stage);//这时才能获得stage引用 
    			
    			this.stage.addEventListener(MouseEvent.MOUSE_DOWN,MouseDownHandler)		
    		}
    		
    		function MouseDownHandler(e:Event):void{
    			trace("you clicked the stage");
    		}
    		
    		
    	}
    }
    

    即必须在ADDED_TO_STAGE事件以后,才能引用到stage对象,当然还有一个提前是该类的实例必须被addChild,比如象下面这样,可以在fla时间轴的帧代码中这样使用:

    var mycls:MyClass = new MyClass();
    addChild(mycls);
    
    作者:菩提树下的杨过
    出处:http://yjmyzz.cnblogs.com
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
  • 相关阅读:
    TSP-UK49687
    维度建模的基本原则
    差分约束系统
    随机过程初步
    随机过程——维纳过程
    Xilinx FPGA复位信号设计
    10 Row Abacus
    Python
    FX2LP与FPGA的简单批量回环
    DFT公式的一个简单示例
  • 原文地址:https://www.cnblogs.com/yjmyzz/p/1712561.html
Copyright © 2011-2022 走看看