1. ActionScript3 中的一个未公开的方法
MovieClip.addFrameScript(frame:uint,notify:Function)
这个方法是将某一个函数添加到某个MovieClip上时间轴的某一帧. 同一帧不能添加多个,后添加的函数会覆盖先添加的函数. 通过此函数,能够彻底地将某些时间轴上的AS代码写到文档类中,那样程序更加符合MVC模式
需要注意的是: 此函数的第一个参数的基数是0,下面的代码示例如果给一个原件的最后一帧添加代码
mcBody.addFrameScript( mcBody.totalFrames - 1, this.OnLastFrame);
![](http://www.cppblog.com/Images/OutliningIndicators/None.gif)
// 最后一帧执行
private function OnLastFrame()
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
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)
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedBlockStart.gif)
{
return function()
![](http://www.cppblog.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)
{
CallOutProxy.ValidateCredentialAsyn( strUsername, strPassword, nRequestNo);
};
}) (mcDlg.txtUsername.text, mcDlg.txtPassword.text, m_nRequestNo)
, 1000 * 2
);
5.程序结构