在侦听器中创建一个对象(class)

To create an object (of some class) in a listener

我在创建脚本时遇到了问题。

是否可以从侦听器中创建对象(某些 class)? 我试过了,但出现错误:``class not found''.

我想做这样的事情:

class ONE {
    class_ONE_code
}

class TWO {
    object o = alloc(ONE)
}

我需要这个来在我执行另一个监听器时创建一个新的监听器。

你想做的事当然可以。您的代码中很可能存在语法错误。例如,您对 class TWO 的实现是无效的,因为像 "o" 这样的成员变量无法在 class 代码的成员声明部分中初始化。这只能在 class 方法中完成,如下面的示例代码所示。

class One
{
    void DoClassOneAction(Object self)
    {
        OKDialog("Class One action executed.");
    }
}

class Two
{
    Object oneInstance;

    void DoClassTwoAction(Object self)
    {
        if (!oneInstance.ScriptObjectIsValid())
            oneInstance = Alloc(One);
        oneInstance.DoClassOneAction();
    }
}

void main()
{
    Object twoInstance = Alloc(Two);
    twoInstance.DoClassTwoAction();
}

main();

请注意,DM 脚本 classes 的编码要求与支持对象的其他语言的编码要求有些不同。您可能希望在 DM 在线帮助的脚本 > 对象部分查看详细信息(通过帮助 > 搜索…菜单项访问)。