我正在尝试使用Ami的一些简单的脚本,它使用TCL,但我不能保证它是标准版本.我想从对象中读取属性并将其分配给另一个对象.
在命令窗口中,过程如下:
Image1 getTransform
0.1 0.2 0.3 0 0 0 0 0 0 1
Image2 setTransform 0.1 0.2 0.3 0 0 0 0 0 0 1
我想做同样的事情而不用手动复制粘贴getTransform的结果
以下不起作用(taht是说没有参数执行setTransform)
Image2 setTransform [Image1 getTransform]
Run Code Online (Sandbox Code Playgroud)
要么
set myT=Image1 getTransform
Image2 setTransform $myT
Run Code Online (Sandbox Code Playgroud)
我确信我只需要适当地使用$ [{,但到目前为止我所尝试的并没有给出任何结果
如果您使用的是Tcl 8.5或更新版本,请使用{*}参数扩展:
Image2 setTransform {*}[Image1 getTransform]
Run Code Online (Sandbox Code Playgroud)
这正是你想要的.
如果您使用的是旧版本的Tcl,那么您必须使用eval一个非常有用的命令,如果使用不当,很多事情都会出错:
eval [linsert [Image1 getTransform] 0 Image2 setTransform]
Run Code Online (Sandbox Code Playgroud)
该linsert用在这里建立一个propper列表,以避免双重置换(几乎总是不好).