在侦听器中创建一个对象(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 在线帮助的脚本 > 对象部分查看详细信息(通过帮助 > 搜索…菜单项访问)。
我在创建脚本时遇到了问题。
是否可以从侦听器中创建对象(某些 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 在线帮助的脚本 > 对象部分查看详细信息(通过帮助 > 搜索…菜单项访问)。