Flash CS4学习笔记3-同步问题

Flash CS4学习笔记3-同步问题

Flash的异步机制,有时候异常DT,总出现意想不到的难题。总结几个问题如下。

1.跳帧时,元件实例异步加载延迟问题。例如某一帧放入了一个按钮元件后,使用实例名称去访问按钮时会出现对象不存在的错误。TypeError: Error #1009: 无法访问空对象引用的属性或方法。

     原因:该帧的按钮对象还没有加载完毕,帧上的AS3.0代码就先执行了,导致访问的对象不存在。不知道Flash为什么会弄出这样的异步问题。

     解决方案:一般出现问题时候是给按钮添加事件处理函数的时候,以此为例说明解决方案。原理上就是延迟300ms,等待帧上元件对象加载完毕再执行对按钮的访问操作。

        setTimeout(addAction,300);

        function addAction()

        {

      btnStart.addEventListener(MouseEvent.CLICK,onClickFunction);

        }

 

2.gotoAndPlay在类内部无法使用的问题。可以通过回调函数来解决。

       在第一帧上写函数gotoScene函数,实现gotoAndPlay功能。然后将函数以参数方式传给类,类内部就可以通过gotoScene函数来实现帧跳转了。

        function gotoScene(frame:uint)

        {

gotoAndPlay(frame);

        }

 

3.舞台stage居中的问题。

        设置stage.align时,没有可用的居中参数,但是传一个空字符串给它,就居中了。

         stage.align="";//舞台将会在显示区域正中

stage.align=StageAlign.TOP_LEFT;//舞台将在显示区域左上角

 

4.读取xml文件时的同步问题。xml文件读取的处理过程一般是在Event.COMPLETE事件中添加处理函数来读取。例如urlLoader.addEventListener(Event.COMPLETE, OnCompleteLoad)。但是我们常常在想使用读取的数据时,发现OnCompleteLoad函数还未执行。因flash异步读取xml文件的机制,暂未发现有效解决方案。

规避方案:在帧上写读取函数,并将所有要访问文件的过程在处理OnCompleteLoad函数时才运行(即放在这个函数内)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值