++的博客

你看不见我,你看不见我。。
随笔 - 22, 文章 - 0, 评论 - 2, 引用 - 0
数据加载中……

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

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

posted on 2008-04-08 17:16 Jerry.Wang 阅读(459) 评论(0)  编辑 收藏 引用 所属分类: 开发