control元件第1影格动作指令如下: 假如 (Number<6) 设定变数: "Number" = (Number+1) 否则 设定变数: "Number" = 1 结束假如 设定变数: "NewX" = GetProperty ("/tracer",_x) 设定变数: "NewY" = GetProperty ("/tracer",_y) 设定变数: "XScale" = (NewX-OldX) 设定变数: "YScale" = (NewY-OldY) 假如 (XScale= 0) 设定变数: "XScale" = .1 结束假如 假如 (YScale= 0) 设定变数: "YScale" = .1 结束假如 假如 (XScale<0) 设定变数: "XScale" = 0-XScale 设定变数: "X" = -1 否则 设定变数: "X" = 1 结束假如 假如 (YScale<0) 设定变数: "YScale" = 0-YScale 设定变数: "Y" = -1 否则 设定变数: "Y" = 1 结束假如 假如 ((X = 1) AND (Y= 1)) 设定内容 ("/Line"&Number,旋转) = 0 结束假如 假如 ((X = -1) AND (Y = -1)) 设定内容 ("/Line"&Number,旋转) = 180 结束假如 假如 ((X = 1) AND (Y = -1)) 设定内容 ("/Line"&Number,旋转) = 270 设定变数: "Temp" = YScale 设定变数: "YScale" = XScale 设定变数: "XScale" = Temp 结束假如 假如 ((X = -1) AND (Y= 1)) 设定内容 ("/Line"&Number,旋转) = 90 设定变数: "Temp" = YScale 设定变数: "YScale" = XScale 设定变数: "XScale" = Temp 结束假如 设定内容 ("/line"&Number,X 位置) = OldX 设定内容 ("/line"&Number,Y 位置) = OldY 设定内容 ("/line"&Number,X 缩放) = XScale 设定内容 ("/line"&Number,Y 缩放) = YScale 开始告知目标 ("/line"&Number) 前往并播放 (1) 结束告知目标 设定变数: "OldX" = NewX 设定变数: "OldY" = NewY Control元件第2影格动作指令如下: 前往并播放 (1) | 一开始没有指定变数Number的值,所以Number的值从0开始。 当Number为0~5时,进入(假如)条件式,此时变数Number的值+1,所得的结果分别为1~6,当Number为6时,则进入(否则)条件式,此时变数Number的结果为1。 所以我们每次所得到的变数Number结果会从1、2、3、4、5、6、1、2、3、4、5、6...循环。此变数将配合"/line&Number"来指定目标物line1、line2~~line6。 设定变数NewX、Y的值分别为目标物tracer的X、Y位置值。而目标物tracer锁定滑鼠中心点位置,所以变数NewX、Y的值等於滑鼠所在的中心点x、y座标值。 设定变数X、YScale的值等於(新滑鼠中心点x、y座标值减去原滑鼠中心点x、y座标值)。 假如滑鼠的x座标位置没有改变时,设定变数XScale=.1,执行蓝色程式。 假如滑鼠的y座标位置没有改变时, 设定变数YScale = .1,执行蓝色程式。 0.1是个极小值,目的是当滑鼠的x或y座标没有改变时,所能看见的线条极小,那为何不乾脆设为0,就什麽都看不见了?其实设为正或负值都没关系,但就是不能设为0,因为我们的线条是有方向性的,至少要给它一个方向,若其中一个值为0,则线条将无法判别方向为何? 参考下图,假设B点为原滑鼠中心点位置,以此分成四块区域(1、2、3、4),A点为移动之後的滑鼠中心点位置,将A(x,y)减去B(x,y) 会得到 (++、-+、--、+-)4种情况。 紫色程式在判别新滑鼠中心点的x座标,是在原滑鼠中心点的左方或右方。 若为左方,将变数XScale由负值转为正值,设定变数X=-1;若为右方,设定变数X=1。 判别新滑鼠中心点的y座标,是在原滑鼠中心点的上方或下方。 若为上方,将变数YScale由负值转为正值,设定变数Y=-1;若为下方,设定变数Y=1。 变数X、Y,就是用来告知新滑鼠座标是位於哪一块区域,执行绿色程式。 |