我创建了一个文本框对象,并在其创建事件中创建了像
这样的列表lines = ds_list_create();
在文本框的步骤事件中我使用ds_list_add(lines, "line one");
它工作正常。
现在我有一个不同的对象试图调用ds_list_add(Textbox.lines, "line from diff object");
但是在运行时它会在读取之前给出关于var未设置的错误。我也尝试改为global.list = ds_list_create();
但问题仍然存在。
有人可以解释如何从不同的对象中调用ds_list
。
答案 0 :(得分:0)
您可以像对待一样调用ds_list_*
函数。只是,您必须确保函数所指的数据结构确实存在。
我尝试了以下测试目的。创建两个对象objTextBox
和objOther
,并按如下方式设置其事件。
对象objTextbox
:
创建活动
list = ds_list_create();
按'空格'事件
var str = get_string("I'm objTextbox:","");
ds_list_add(list,str);
绘制事件
for (var i=0;i<ds_list_size(list);i++)
draw_text(10,10+15*i,string(ds_list_find_value(list,i)));
对象objOther:
按'Shift'事件:
var str = get_string("I'm objOther:","");
ds_list_add(objTextbox.list,str);
现在将它们添加到房间,并确保要创建的第一个对象是objTextbox
,这是创建ds_list
的对象。运行
在处理数据结构时,请务必确保在使用数据结构之前创建它们。