我正在开发一个文字应用,其中包含一个按钮,用于增加字段中所选文字的文字大小。
下面是我正在使用的处理程序,当所有selectedText当前大小相同时,它可以正常工作。如果某些文本的大小不同,则处理程序将返回此错误:
第42行的执行错误(操作符+:左操作数中的错误),char 68
处理程序:
on txtSizeUp
set the textSize of selectedText to the textSize of selectedText + 2
end txtSizeUp
无论差异如何,我都需要做些什么才能改变尺寸?
答案 0 :(得分:1)
更改处理程序以使用selectedChunk而不是selectedText。
on txtSizeUp
set the textSize of the selectedChunk to the textSize of the selectedChunk + 1
end txtSizeUp
当然还有好的措施:
on txtSizeDown
set the textSize of the selectedChunk to the textSize of the selectedChunk - 1
end txtSizeDown
编辑:上面的处理程序仅在整个selectedChunk的textSize相同时才起作用。即使选择中有不同的大小,您也希望能够增加文本大小。 (我在你原来的问题中错过了那个细节。)
问题是the selectedChunk
函数在选择中有不同的大小时返回字符串“mixed”。这就是你得到错误的原因; set
语句试图添加mixed + 1
,数据类型不匹配。这是一个应该做你想做的处理程序。
on txtSizeUp
put the effective textSize of the selectedChunk into tSize
if tSize is a number then
set the textSize of the selectedChunk to \
the effective textSize of the selectedChunk + 1
else
lock screen
put the long name of the selectedField into tFld
put word 2 of the selectedChunk into tStartChar
put word 4 of the selectedChunk into tEndChar
repeat with x = tStartChar to tEndChar
set the textSize of char x of tFld to \
the effective textSize of char x of tFld +1
end repeat
unlock screen
end if
end txtSizeUp
将会有其他方法可行,但它们都会以某种方式循环浏览所选文本。
答案 1 :(得分:0)
设置textSize时,LC需要一个块表达式,如line 3 of fld 1
或word 2 to 4 of fld "yourField"
短语the selectedText
解析为选择的实际文本。因此,如果您在某个字段中“我的狗有跳蚤”,选择了“狗”,则您的代码要求:
set the textSize of "dog" to someValue
这是不允许的。引擎不知道该怎么做。您需要修改脚本和方法,以制作块,而不是文本引用。