zoukankan      html  css  js  c++  java
  • stage报告为空对象

    stage对象是所有displayObject的共有属性,引用到舞台对象(即stage)。但很多人会忽略的是,只有displayObject放置到舞台后,displayObject.stage才能指定到舞台,不然stage属性为null,运行时报错。我们用一段代码就容易理解这是为什么:
    package{
    import flash.display.*;

    public class mc extends Sprit {
    public function mc():void{
    super();
    stage.displayState=StageDisplayState.FULL_SCREEN;
    }
    }

    }

    在舞台脚本的第一帐加入

    import mc;

    var mc:mc = new mc();

    addChild(mc);

    上面,我们将flash设为全屏播放,但刚运行就报错了。
    这是因为我们在实例化mc时flash执行了超类代码,检测到this.stage这个对象,但因为mc还未addChild到舞台,所以stage = null,即为空对象。addChild(mc)还在下一句,因此就报错了。
    你可能会说总先实例化才能加入舞台吧,不可能倒过来。没错,这个问题也有解决办法,就是监听加入到舞台的事件:
    obj.addEventListener(Event.ADDED_TO_STAGE, fun)
    最后变成:

    package{
    import flash.display.*;
    import flash.events.Event;

    public class mc extends Sprit {
    public function mc():void{
    super();
    this.addEventListener(Event.ADDED_TO_STAGE, addToStage);
    }
    }

    private function addToStage():void {
    stage.displayState=StageDisplayState.FULL_SCREEN;
    }
    }

  • 相关阅读:
    C#中virtual 方法和abstract方法的区别
    解决zabbix的cannot allocate shared memory of size错误
    批量改名的shell脚本
    /bin/bash和/bin/sh的区别
    搭建redmine全攻略——与apache整合(CentOS 5.8 64位)
    内网监控利器——Nagios
    Maven
    TypeScript
    ShardingSphere
    Spring框架源码分析
  • 原文地址:https://www.cnblogs.com/sumsung753/p/3821506.html
Copyright © 2011-2022 走看看