preloading flex 的问题

在我proloading AIR时遇到,TypeError: Error #1009: Cannot access a property or method of a null object reference.
at spark.components::WindowedApplication/enterFrameHandler()[E:\dev\4.x\frameworks\projects\airspark\src\spark\components\WindowedApplication.as:2349]

提示,stage = null ,最后发现要在FlexEvent.INIT_PROGRESS的处理函数中加点东西如下:

if(FlexGlobals.topLevelApplication != null)
   {
    FlexGlobals.topLevelApplication.addEventListener(Event.ENTER_FRAME ,onWindowedApplicationEnterFrame, false, int.MAX_VALUE);
    (FlexGlobals.topLevelApplication).addEventListener(Event.ADDED_TO_STAGE, onWindowedApplicationAddedToStage, false, int.MAX_VALUE);
    trace("SCREEN: ", FlexGlobals.topLevelApplication.screen);
   }

接下来写两个回调函数

private var pendingWindowedApplicationEnterFrameEvent:Event;

 

private function onWindowedApplicationEnterFrame(event:Event):void
  {
   pendingWindowedApplicationEnterFrameEvent = event.clone();
   event.stopImmediatePropagation();
  }
  
  private function onWindowedApplicationAddedToStage(event:Event):void
  {
   FlexGlobals.topLevelApplication.addEventListener(Event.ADDED_TO_STAGE, onWindowedApplicationAddedToStage, false);
   FlexGlobals.topLevelApplication.removeEventListener(Event.ENTER_FRAME, onWindowedApplicationEnterFrame, false);
   
   // dispatch pending enter frame event
   dispatchEvent(pendingWindowedApplicationEnterFrameEvent);
   
  }

然后就OK了

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值