#12001/2/7 1:47:01
语法 ENTER
描述 属性函数; 代表Windows系统中的“Enter”键 或 Macintosh系统中的 “Return”键 .
在PC键盘上, “ENTER”只代表数字键盘上的“ENTER”键. 如果要作为 JAVA APPLET播放的话,用“RETURN”既代表WINDOWS中的 “RETURN”键,又代表MACINTOSH中的“ENTER”键。
范例 此处理程序用来检验“Enter”键是否被按下,如果被按下则把播放头移到 “addSum"帧。
on keyDown
if the key = ENTER then go to frame "addSum"
end
参照 RETURN (constant)
-----------------------------------------------------------------------------------------------------------------------------
语法 on enterFrame
statement(s)
end
描述 系统事件;每次当播放头进入此帧时触发事件。
如下所示把enterFrame事件放在行为脚本、帧脚本或影片脚本中:
·要想在单个的精灵上触发此事件,可把enterFrame事件放在精灵的行为 脚本中。
·要想在单个的帧上触发此事件, 可把enterFrame事件放在帧脚本中.
·要想在每个帧上触发此事件(除非你事先在影片中设过指令), 把enterFrame事件 放在影片脚本中. 那么此事件会在播放头进入影片的每一帧中触发.除非那一帧有自 己的帧脚本, 因为帧脚本的优先级高于影片脚本的优先级.
有关Frame的命令有:stepFrame, prepareFrame, enterFrame, 和exitFrame.
这个事件如果用在一个行为语句中,它会以函数"me"做为参考对象!
范例 此例用来在每次播放头进入此帧时取消对通道1至通道5的木偶控制(puppet)。
on enterFrame
repeat with i = 1 to 5
puppetSprite i, FALSE
end repeat
end
---------------------------------------------------------------------------------
语法 the environment
the envrionment.propertyName
描述 系统属性; 这个属性包含一个目前Director所运行的系统环境参数列表。
这种设计可以使MACROMEDIA 在没有影响目前的电影的情况下,在以后增加一些外界属性的信息。
以下信息是它的参数所对应的属性形式:
#shockMachine TRUE 或是FALSE的整数值可以说明当时电影是否在SHOCKMACHINE 播放
#shockMachineVersion 字符串,可以显示SHOCKMACHINE的安装版本号
#platform字符串,包含“Macintosh,PowerPC”, 或“ Windows,32”。这些都取决于 当前影片所运行的操作系统及硬件。
#runMode字符串,包含 “作者”,“播放器”,“插件”或“Java Applet”。这些都取决 于当前电影所运行的应用程序。
#colorDepth整数值,表现当前监视器色彩的bit数。 可能的值是1, 2, 4, 8, 16, 或32。
#internetConnected 符号,表示目前电脑是否连在INTER网上。 可能的值是 #online 和 #offline.
#uiLanguage 字符串, 指出计算机所使用的语言界面。当计算机上使用了外挂语言平台时它与 #osLanguage参数所显示的结果不同。
#osLanguage 字符串, 指出计算机操作系统所使用的语言界面。
#productBuildVersion 字符串, 指出重放应用程序的内部构造数量。
这些属性包含正确的与属性相同的信息,并且函数也有相同的名字。
范例 下例在Message窗口中显示环境列表:
put the environment
-- [#shockMachine: 0, #shockMachineVersion: "", #platform: "Macintosh,PowerPC", #runMode: "Author", #colorDepth: 32, #internetConnected: #online, #uiLanguage: "English", #osLanguage: "English", #productBuildVersion: "151"]
参照 colorDepth, platform, runMode
---------------------------------------------------------------------------------
语法 member(whichCastMember).erase()
erase member whichCastMember
描述 命令语句; 删除指定的演员,并使所在位置为空;
为了保证稳定运行,请尽量不要在project中使用此命令(可能会导致内存管理混乱),在编辑时可以使用.
范例 下例用来删除"Hardware"成员列表中名为"Gear"的成员。
member("Gear", "Hardware").erase()
范例 下例用来删除成员列表中从开始到结束的所有成员:
on deleteMember start, finish
repeat with i = start to finish
member(i).erase()
end repeat
end on deleteMember
参照 new()
----------------------------------------------------------------------------------
语法 on EvalScript aParam
statement(s)
end
描述 系统事件; 在Shockwave影片中, 此事件在收到浏览器发出的EvalScript消息后被触发。参数是从浏览器传来的字符串!
EvalScript消息可以包含一个Director可以识别的LINGO语句。LINGO不能识别套嵌字符串。如果你的事件中需要一个字符串作为参数,把此参数作为符号传递。
“on EvalScript”事件在浏览器中可以被javascript 或 VBScript 用EvalScript()方法调用。
DIRECTOR针对JAVA的播放器不支持“on EvalScript”事件。为了在浏览器中可以和applet通信,用Java, javascript, 或VBScript。
出于系统安全考虑,在“on EvalScript”的行为中放入你所需要的行为来给用户控制,而不要把控制权完全交于用户。
注意:如果你在EvalScript时间的末尾加入RETURN命令,那返回的值能被浏览器中的javascript使用。
范例 下面演示如何让播放头根据传递参数的不同,而跳至特定的帧。
on EvalScript aParam
go frame aParam
end
范例 下例当它收到一个EvalScript消息包含dog, cat, 或tree作为自变量的话,就运行“go frame aParam”语句。
on EvalScript aParam
case aParam of
"dog", "cat", "tree": go frame aParam
end case
end
可能在这里的javascript中有一个叫EvalScript ("dog")的声明。
范例 下面这个事件获得一个数字或符号自变量:
on EvalScript aParam
if word 1 of aParam = "myHandler" then
do aParam
end if
end
范例 下面的事件需要通常需要一个字符串作为它的自变量。自变量作为一个符号被接收,然后在事件中被STRING函数转化为字符串:
on myHandler aParam
go to frame string(aParam)
end
参看 externalEvent, return (keyword)
-----------------------------------------------------------------------------
语法 sprite(whichFlashSprite).eventPassMode
the eventPassMode of sprite whichFlashSprite
member(whichFlashMember).eventPassMode
the eventPassMode of member whichFlashMember
描述 FLASH 演员属性 和精灵属性;当一个FLASH影片传递鼠标事件到行为时,可以让在鼠标所接触的精灵下的其他FLASH精灵也能收到鼠标事件。eventPassMode的以下这些属性值:
#passAlways (默认值)--总是传递鼠标事件.
#passButton--只在FLASH中某个按钮元素被点击时传递鼠标事件.
#passNotButton--只在FLASH中某个不是按钮的元素被点击时传递鼠标事件.
#passNever--不传递鼠标事件。
这些属性可以被用来调试和设置。
范例 下面这个帧脚本用来检验在FLASH影片中的按钮是否被激活,如果是的话就把eventPassMode属性设为#passNotButton;如果按钮没有被激活就把eventPassMode属性设为#passAlways。这个脚本所起的作用是:
·当鼠标事件在不是按钮的成员上被触发时,就把它传递给其它精灵脚本。
·当鼠标事件被传递到按钮上,并且按钮被激活时,停止传递鼠标事件。
on enterFrame
if sprite(5).buttonsEnabled = TRUE then
sprite(5).eventPassMode= #passNotButton
else
sprite(5).eventPassMode = #passAlways
end if
end
---------------------------------------------------------------------------------
语法 exit
描述 关键字;通知LINGO退出行为并回到此行为被调用的地方。如果此行为嵌套在另一行为中,LINGO将退回到主行为。
范例 下面这个脚本的第一个指令用来检验监视器是否设为黑白,如果是就退出此行为。
on setColors
if the colorDepth = 1 then exit
sprite(1).foreColor = 35
end
参照 abort, halt, quit, pass, return (keyword)
--------------------------------------------------------------------------------
语法 on exitFrame
statement(s)
end
描述 系统事件;每次当播放头退出此帧时触发事件。on exitFrame事件是一个用来放置那些需要在离开此帧前执行的LINGO语句的有效地方。
如下所示把exitFrame事件放在行为脚本、帧脚本或影片脚本中:
·要想在单个的影片精灵上触发此事件,可把exitFrame事件放在影片精灵的行为脚本中.
·要想在单个的帧上触发此事件, 可把exitFrame事件放在帧脚本中.
·要想在每个帧上触发此事件(除非你事先在影片中设过指令), 把exitFrame事件放在影片脚本中. 那么此事件会在播放头进入影片的每一帧中触发.除非那一帧有自己的帧脚本, 因为帧脚本的优先级高于影片脚本的优先级.
这个事件如果用在一个行为语句中,它会以函数"me"做为参考对象!有关Frame的命令有:prepareFrame, enterFrame, 和exitFrame.
范例 此处理程序用来在播放头退出此帧时关闭对通道48至通道41的控制(puppet)。
on exitFrame me
repeat with i = 48 down to 1
sprite(i).puppet = FALSE
end repeat
end
范例 下面这个处理程序用来控制在播放头离开此帧时,播放头的走向。如果在离开此帧时,全局变量vTotal的值大于1000那么播放头跳至"Finished"帧,否则进入下一帧:
global vTotal
on exitFrame
if vTotal > 1000 then go to frame "Finished"
end
参照 on enterFrame
----------------------------------------------------------------------------------
语法 the exitLock
描述 影片属性;决定用户是否可以从DIRECTRO播放器(PROJECTOR)退出到WINDOWS桌面或者Macintosh Finder。
用户可以通过按下 Control+句点 (Windows) or Command+句点 (Macintosh), Control+Q (Windows) or Command+Q (Macintosh), or Control+W (Windows) or Command+W (Macintosh)退回到桌面; Escape键也同样支持WINDOWS用户。
这些属性可以被测试和设置。
范例 下面这个语句把exitLock属性设为TRUE:
set the exitLock to TRUE
范例 假定exitLock被设为TRUE,当用户按下Control+period/Q/W, Esc, or Command+period/Q/W等键时,并不会退出,而是把用户带到退出场景:
on checkExit
if the commandDown and (the key = "." or the key = "q") and the exitLock = TRUE then go to frame "quit sequence"
end
----------------------------------------------------------------------------------
语法 exit repeat
描述 关键字;命令LINGO退出REPEAT循环并跳到end repeat语句后。
exit repeat用于在特定条件下打断当前循环是十分有效的--如当两个变量相等或当一个变量成为一个特定值时--退出循环。
范例 下面这个事件用来检验在字符串变量testString中的第一个元音字母的位置,当第一个元音字母被找到时,exit repeat命令让LINGO退出REPEAT循环并跳到return i语句:
"on findVowel testString
repeat with i = 1 to testString.char[testString.char.count]
if ""aeiou"" contains testString.char[i] then exit repeat
end repeat
return i
end"
参照 repeat while, repeat with
-------------------------------------------------------------------------
语法 (integerOrFloat).exp
exp(integerOrFloat)
描述 函数;计算以e为底指数的值,指数可以是整数或小数。
范例 下面的语句计算以E为底5的指数:
put (5).exp
-- 148.4132
---------------------------------------------------------------------------------
语法 externalEvent "string"
描述 命令; 发送一个能被浏览器作为SCRIPTING语言接收的指令到浏览器,
允许正在播放的影片或浏览器可以同内植它的HTML页面进行通信。 被externalEvent传送的字符串必须是能被浏览器接受的scripting语言。
此命令仅浏览器中的影片起作用。要在一个APPLET和浏览器中进行通信,用Java, javascript, 或 VBScript。
注意: externalEvent命令不能产生返回值. 没有一个直接的方法可以确定浏览器是接收了事件还是忽略了它. 可以在浏览器内部使用on EvalScrip来返回一个消息给影片.
范例 这些在LiveConnect scripting中用的externalEvent语句可以被Netscape 3.x及以上版本支持。
#LiveConnect evaluates the string passed by externalEvent as a function call. LiveConnect求出这些被externalEvent作为函数访问的字符串的值。
javascript的作者必须在HTML的头上给这个函数定义并命名。在影片中函数名和参数将作为字符串被externalEvent定义。因为参数必须浏览器作为单个字符串解释,所以每个参数必须加上单引号。
在HTML里声明:
function MyFunction(parm1, parm2) {
//script here
}
在影片脚本中声明:
externalEvent ("MyFunction('parm1','parm2')")
范例 这些用在ActiveX scripting中的externalEvent语句将被WINDOWS中的IE浏览器使用。ActiveX将externalEvent作为一个事件并处理这个事件,它的字符串参数在按钮对象中如同一个onClick事件。
在HTML里声明:
在HTML的头部定义一个函数来捕捉事件; 这个范例用在VBScript中:
Sub
NameOfShockwaveInstance_externalEvent(aParam)
'script here
End Sub
作为选择,为事件定义一个脚本:
在影片中,externalEvent包括方法及相关的作为字符串一部分的参数:
externalEvent ("MyFunction ('parm1','parm2')")
参照 on EvalScript
---------------------------------------------------------------------------------
语法 externalParamCount()
描述 函数;返回HTML