开发中遇见的 一些AS3的经验 和 技巧

开发中遇见的 一些AS3的经验 和 技巧

1. ActionScript3 中的一个未公开的方法
MovieClip.addFrameScript(frame:uint,notify:Function)
这个方法是将某一个函数添加到某个MovieClip上时间轴的某一帧. 同一帧不能添加多个,后添加的函数会覆盖先添加的函数.  通过此函数,能够彻底地将某些时间轴上的AS代码写到文档类中,那样程序更加符合MVC模式
需要注意的是: 此函数的第一个参数的基数是0,下面的代码示例如果给一个原件的最后一帧添加代码
        mcBody.addFrameScript( mcBody.totalFrames  -   1 this .OnLastFrame);

        
        
//  最后一帧执行
        private  function  OnLastFrame()
        

            
var oClient : MainStageClient = new MainStageClient();
            oClient.ShowBar(
true);
            mcBody.stop();
        }


2. 如何捕获AS运行时错误
由于我自己的程序通过Flash Player ActiveX  host Flash. 而我的SWF直接在FlashCS3中编译是无法运行的
对于AS运行时错误,需要下载Flash Player Debug版本, http://www.adobe.com/support/flashplayer/downloads.html
就可以捕获了

3. 如何捕获LocalConnection NetConnection 等对象的异常?
1  private static  var  s_objConn : LocalConnection  =   null ;
2 
3  s_objConn.addEventListener(AsyncErrorEvent.ASYNC_ERROR,  this .AsyncErrorHandler);
4 
5 
6  private  function  AsyncErrorHandler(evt:AsyncErrorEvent): void
7  {
8      CallOutProxy.ShowMsg(evt.toString());
9  }

4.向匿名函数传递参数
写法和Javascript的完全一样
setTimeout( 
                       (
function (strUsername, strPassword, nRequestNo) 
                        

                            
return function()
                            
{
                                CallOutProxy.ValidateCredentialAsyn( strUsername, strPassword, nRequestNo);
                            }
;                
                        }
) (mcDlg.txtUsername.text, mcDlg.txtPassword.text, m_nRequestNo)
                       , 
1000   *   2
                       );

5.程序结构
开发中遇见的 一些AS3的经验 和 技巧_第1张图片

你可能感兴趣的:(开发中遇见的 一些AS3的经验 和 技巧)