flash8下的#include NetDebug.as

在使用Flash MX 2004和Flash Communication Server开发程序的过程中,为了便于调试,通常会在客户端程序中加上这么一句:

#include "NetDebug.as"

然后配合NetConnection Debugger,就可以随时看到调试信息。可是,将程序转到Flash 8之后,这招却不灵了,即使我已经安装了Flash Remoting Components for Flash 8

找到Flash安装文件夹下的“language\First Run\Classes\mx”,发现remoting的文件一个不少,那为什么不能include呢?

flash8 Remoting目录

原来,用于include的“NetDebug.as”与“language\First Run\Classes\mx\remoting\debug”中的类并非同一个,前者其实在“language\First Run\Include”目录中,与后者同名。使用#include "NetDebug.as"指令调用的则是前者。

而Flash 8的Include目录中并没有“NetDebug.as”,要使用原来的方法,还要将Flash mx 2004的Include目录中的内容复制过来:

Flash mx 2004 Include目录

原以为这样就可以高枕无忧,却发现在Class中,好像不能直接使用Netdebug.trace()方法,编译时报错。但是同样的程序,在Flash MX 2004却没有问题。

**错误** L:\work\......\view\child\ActorList.as: 第 51 行: 没有名为'NetDebug'的方法。
NetDebug.trace("data:"+temp.data);

于是在Class中加入下面的代码,一切恢复正常。

class view.child.ActorList extends MovieClip{
                    ......
    private var NetDebug;
    function ActorList(){
        NetDebug = _global.NetDebug;
    }
                    ......