以下过程将变量String中的字符串进行简单加密。加密原理是:依次获取每个字符的ASCⅡ码字符串,并利用reverse过程反转ASCⅡ码中的数值顺序。例如字符"A"的ASCⅡ码字符串是"65",经反转之后得到字符串"56"。
String:="Authorware 7 is Coming"
Encode:="" --用于存放加密后的字符串
repeat with i:=1 to CharCount(String)
ASCII:=string(Code(SubStr(String, i, i)))
--以下通过Reverse过程,反转ASCⅡ码中的数值顺序
reverse:=""
repeat with j:=1 to CharCount(ASCII)
reverse:=SubStr(ASCII, j, j)^reverse
end repeat
Encode:=Encode^reverse^" " --将反转后的ASCⅡ码以空格分隔,连接成为字符串
end repeat
上述语句执行之后,变量Encode的值为:"56 711 611 401 111 411 911 79 411 101 23 55 64 84 23 501 511 23 76 111 901 501 011 301 "。在AWS中单个变量最多可存储512K个字符,因此加密过程可以对长达128K的字符串进行加密。
6.Decode:字符串加密
以下过程将变量Encode中的字符串(由上述加密过程形成)进行解密。解密是加密的逆过程,例如将字符串"56"反转之后得到字符串"65",再由"65"得到字符"A"。以下过程同样利用了reverse过程。
Decode:="" --用于存放解密后的字符串
--根据加密字符串中的反转ASCⅡ码数量开展循环
repeat with i:=1 to WordCount(Encode)
ASCII=GetWord(i, Encode)
--以下通过Reverse过程,得到正确的ASCⅡ码
reverse:=""
repeat with j:=1 to CharCount(ASCII)
reverse:=SubStr(ASCII, j, j)^reverse
end repeat
Decode:=Decode^ Char(reverse)
end repeat
上述语句执行之后,变量Decode的值为:"Authorware 7.0 is Coming "。
上述过程全部以代码片段的形式保存在Chapter03文件夹下的ece7.xml文件中。读者可以打开该文件,如图3-36所示,将其中的代码片段复制到自己的ece7.xml文件中(它通常位于C:\Documents and Settings\<用户名>\Application Data\Macromedia \Authorware 7路径中)。读者也可以直接使用光盘中的ece7.xml文件替换自己的ece7.xml文件,并取消文件的只读属性,在此之前请做好ece7.xml文件的备份工作,这样在Authorware 7.0中就可以通过插入代码片段的方式使用这些过程,如图3-37所示。在使用代码片段时,需要创建在上述过程中以粗体表示的自定义变量。
图3-36 ece7.xml中的自定义过程
图3-37 自定义代码片段
可以将平时经常使用的过程都创建为代码片段。这样在以后的设计过程中,就不必重复输入大量相同或相似的内容,从而可以有效地提高工作效率。但代码片段通常只是一段代码的框架,在插入到运算窗口中后还需要进行完善(例如创建或重新命名变量,避免和程序中已有的变量发生冲突)。 |