我正在尝试在数组中使用图像 - 我来自Java背景,所以我认为图像是一个Object,当我把它放在数组中时,我会期望对象的所有属性要维持。情况似乎并非如此。
这是我的代码:
put image sheep into animalarray[1]
answer the short name of image sheep
put animalarray[1] into temp
answer the short name of temp
我希望前两行代码相当于后两行代码 - 但它们不是。前两行做我期望的(它们显示我的“羊”图像的简称)。当第四行执行时,后两行产生运行时错误。 (对象表达式中的块错误)
将图像放入数组后,它是否会被视为图像对象?我应该停止思考物体吗?
我使用的LiveCode越多,我理解的就越少......
答案 0 :(得分:3)
你会想做这样的事情:
put the imagedata of image sheep into animalarray[1]
或者
put the text of image sheep into animalarray[1]
imagedata基本上是一个位图(4个字节的连续集,ARGB),表示屏幕上显示的图像。此属性在图像更改时更改,例如,如果您设置宽度,则imagedata属性会更改以反映此
文本是二进制数据(即文件),它是图像的“源”。在操作ide中的图像对象后,这仍然是相同的。
答案 1 :(得分:3)
我认为@David Williams已经很好地回答了这个问题,但这里有更多信息:
在LiveCode中,对象和变量不是一回事。对象具有名为“text”的默认属性,因此如果您put image X into theImage
将对象的文本放入变量中。这里的文字是PNG,JPEG等数据。
如果您确实希望将对象的属性放入变量中,可以使用properties属性执行此操作:
put the properties of image sheep into animalarray[1]
answer animalarray[1]["name"]
如果您真正想要的东西就像是指向原始对象的指针那么大卫在他的评论中指出:
put the long id of image sheep into animalarray[1]
answer the short name of animalarray[1]