在Hypercard中,我只能将图片存储在卡片上。在LiveCode中,可以在堆栈级别上存储一组图片。它是否正确?如果是的话,我如何将一个文件夹中的所有图片加载到堆栈中?如何将读取脚本更改为仅将所有对图片的引用读入堆栈?如何将图片存储在堆栈中?
回答
我认为不可能将图像存储在堆栈中,但不能存储在卡上。要将图像存储在卡上,您需要import
命令。它将把图像电流(最前面)卡上,例如:
answer file "select a picture"
if it <> "" then
import paint from file it
end if
为了从一个文件夹导入多张图像,您可以使用ask folder
命令,并使用the defaultfoder
和the files
把他们都弄到:
answer folder "select a folder"
if it <> "" then
set the defaultfolder to it
put the files into myListOfFiles
repeat for each line myFile in myListOfFiles
import paint from file myFile
end repeat
end if
请注意,某些操作系统隐藏文件将出现在the files
中。为了避免这些,你需要将它们过滤掉,例如在Mac OS X:
filter myListOfFiles without ".*"
的另一种方式,以避免不必要的文件类型是加一个限定的文件要包括:
if char -4 to -1 of myFile is among the items of ".gif,.jpg,jpeg,.png,.bmp,.tif,tiff" then
import paint from file myFile
end if
您可以将所有图像以类似的方式存储在一个文件夹中;
answer folder "Select the folder containing your images"
if it <> "" then
set the folder to it
put the files into tFiles
repeat for each line tFile in tFiles
set the uImages[tFile] of this stack to URL("binfile:" & tFile)
end repeat
end if
如果你有你的卡叫“MYIMAGE”,并在文件夹中的一个图像的图像对象被称为“car.png”,然后你可以;
set the text of image "myImage" to the uImages["car.png"] of this stack
要检索存储在堆栈中的图像列表,您可以参考;
put the customKeys["uImages"] of this stack into tImageList
HTH :)
'uImages'是一个包含文件引用的数组?我看不到变量'tImageList'的定义。 – 2013-04-29 16:45:42
uImages是在重复循环中创建的自定义属性集(自定义属性的数组)。tImageList可以是任何变量 - 我只是通过转储其中设置的属性的键来创建它。查看LiveCode用户指南的第7.9节以获取有关定制属性集的更多信息。 – splash21 2013-04-29 21:39:36
7.8.3 **自定义属性**的内容我发现: *您可以使用其属性名称与集合 命令一起设置自定义属性的值,与您设置内置的方式相同属性* – 2013-05-01 22:39:39
这不是太难存储在堆栈中的图像,而不将它们放置在一张卡片上。这样做:
在任何卡上创建一个组。 将所有图像导入它。 在对象菜单中,选择“删除组”。
这将从组中删除该组,但不会将其删除。该组图像存在于无卡上,但所有图像均可用。您可以正常引用它们,将它们用作图标,稍后将它们复制到卡片上,无论您需要什么。这就像在卡上有一个看不见的组,只有它不是层次结构中的对象。它不接收消息,也不在对象分层中。
顺便说一下,这就是导入的HyperCard堆栈如何存储它们的图标图像。 HC导入后,您可以在对象菜单中的“放置组”菜单项中找到未放置的组,名称为“HC图标”。它不存在于任何卡上,但所有导入的按钮仍显示其图标。
- 1. 如何在onSaveInstanceState()中存储堆栈?
- 2. 事情如何存储在堆栈中?
- 3. 如何在堆栈中存储NSString
- 4. 存储在堆栈或堆
- 5. 将浮点存储在堆栈中
- 6. 数组如何存储在堆栈上?
- 7. 将堆栈结构存储在堆vs栈上
- 8. 堆vs堆栈存储
- 9. 在堆栈内存中存储引用
- 10. 如何将堆栈指针寄存器中的值存储到存储器(8085)?
- 11. 堆栈和堆栈内存存储在C++
- 12. 堆栈上的C++存储保存在堆栈上
- 13. 如何将增量变量存储到数组或堆栈中
- 14. 在递归函数中存储堆栈
- 15. 如何将数组存储在堆中?
- 16. JVM堆栈存储器
- 17. Android堆栈碎片视图
- 18. 搜索堆栈的值和存储在临时堆栈
- 19. 什么数据将被存储在堆栈中在C#
- 20. 如何在堆栈中存储void * C++容器
- 21. 如何在数据库中存储堆栈或长阵列?
- 22. 在WP7中存储堆栈隔离存储
- 23. 如何管理堆栈中的碎片?
- 24. 如何在一个循环中将切片用作堆栈
- 25. 使用存储在堆栈(JavaFX的)
- 26. 在div中存档图像堆栈
- 27. 如何在CloudKit中存储大图片?
- 28. 如何在Db40中存储和图片?
- 29. 如何在MySQL中存储图片?
- 30. 如何在Google BigQuery中存储图片?
这似乎将所有图像放在一张卡上。我如何确保每张图片都放在自己的卡片上? – 2013-04-29 16:43:46
在适当的地方添加:'new card' :) – BvG 2013-04-29 20:43:42
并且不要忘记查看内置字典中的所有术语 – BvG 2013-04-29 20:44:26