MIAWS帮助.
1 使用_player.windowList来列举所有的窗口.
2 使用Display Template来设置MIAW的缺省属性.
3 使用MovetoFront和moveToBack来将窗口前置或后置
4 MIAW的部分事件:
on movewindow
on resizewindow
on zoomWindow
on openWindow
on activateWindow
on deactivateWindow
on activateApplication
on deactivate Application
on trayIconMouseDown(windows only)
在托盘图标上单击
on trayIconDoubleclick(windows only)
在托盘图标上双击
on trayIconRightMouseDown(windows only)
在托盘图标上点击右键.
5 在不同的MIAW中通讯,我们可以使用window("MIAW").movie.member(1).name等这样的方式进行,注意主窗口使用的Window("stage")的方式,全局变量在所有的窗口中都是可以共享的.
6 建立一个MIAW窗口.我们使用window().new("window name")(lingo)或new window("window name")(javascript),窗口自动加入windowlist里面.你可以使用window对象来获取一个窗口而便于以后操作此窗口.如ojbwindow=_player.windowlist[1]这种形式.
7 Title属性显示在标题拦里面,并可以使用FileName来确认外部窗口的具体位置,如window("miaw").filename="c:\test\miaw.dir".同时可以使用Name来重新定义窗口的名字,此名字用来引用此窗口.此名字同时显示在windowlist里面.
8 使用window("aaron").open()的方式来打开一个窗口.使用close()方式关闭窗口不过仍然驻留内存,使用forget()彻底关闭窗口.
9 使用Rect,drawrect和stageRect,sourceRect来控制窗口的显示.
Drawrect是movie内容与其属于的窗口的位置,如果显示内容的左上点与窗口的左上点重合,则drawRect的值将是rect(0,0,640,480)这样的形式.而rect是窗口相对与屏幕的位置,如果窗口的左上点和屏幕的左上点是重合的,则rect的值将是rect(0,0,800,600)这样的格式.而SourceRect则返回最初的窗口大小.
10 部分MAIW的设置:
Type:包括tool,document和dialog三种,tool方式不接受Activate和deactivate事件,而如果是document方式,则显示最基本的窗口方式.dialog窗口总是最前并且是模态的.
location:当窗口小于屏幕大小的时候,locaiton用来设置与左上的距离.改动location的值,同时就改动了sourceRect的值.
centered 总是将窗口放在屏幕的中央.
resizable 设置窗口是否是可以可伸缩的.
docking 设置MIAW是否可以停靠.主要我们用来制作插件类的MIAW时使用.tool和docment格式的MIAW可以和相应的窗口停靠在一起.
Maximize Box :最大化按钮
Close Box 关闭按钮
Minimize Box 最小化按钮
Visible 如果为不可见时,以上三个按钮无效
Icon 设置显示在title上的图片.为director内部的图片.
Mask 设置蒙板
Drag Msak 设置可以拖动的部位.
11 部分方法:
minimize() 最小化窗口 window("miaw").minimize()
maximize() 最大化窗口 window("miaw").maximize()
restore() 最大化窗口以后恢复原来的窗口 window("miaw").restore();
notifyUser() 当窗口缩小到任务条的时候,使用window("miaw").notifyUser(-1,10000)的方式可以提示用户.(表现为在任务条上闪烁)
displaySystemTrayMessage() 在托盘显示区显示一个信息,其中systemTrayTooltip属性必须设置为true.
而systemTrayTooltip有效则必须systemTrayIcon设置为1.同时我们必须选定一个member作为Title bar下面的icon属性,否则上面所有的设置都无法看到效果.而Icon属性有效则必须设置titlebarOptions的visible属性为true.(真的是有点麻烦)
12 许多的设置只有在发布成为project后才能够体现.在编辑状态无法观察到结果.
补充:
sendsprite 和call的区别:sendsprite发送消息到所有的接受器,而call则不发送消息到frame script,movie script,member of script对象
enableHotSpot
QTVR命令,用于打开或者是关闭QTVR影片里面的热点。
--------------------------------------------------------------------------
nodeType
sprite(whichQTVRSprite).nodeType
nodeType of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性;供给当前舞台指定sprite的节点类型.可能和值是:#object, #panorama, or #unknown.(#unknown当sprite不是一个QuickTime VR sprite时返回的值)。
这个属性可读和可设置。
------------------------------------------------- -------------------------
fieldOfView --控制全景图的放大与缩小,实际就是视野的大小,视野越大,图象越小.
语法:
sprite(whichQTVRSprite).fieldOfView
the fieldOfView of sprite whichQTVRSprite
描述:
QTVR角色属性;给出指定的角色的当前视点的角度范围这个属性能检验和设置。
-------------------------------------------------------------------------------------------
nudge 用于控制全景图的移动
语法
sprite(whichQTVRSprite).nudge(#direction )
nudge(sprite whichQTVRSprite, #direction)
描述
QuickTime VR命令;根据参数#direction指定的方向轻推指定的QuickTime VR sprite画面的视点。
#direction的值可以是#down,#downLeft,#downRight,#left,#right,#up,#upLeft和#upRight。
轻推右边就会使sprite画面的图像向左移动。
nudges命令没有返回值。
例子
在鼠标在sprite上被按下时,就会促使QTVRsprite画面的视点向左移动。
on mouseDown me
repeat while the stillDown
sprite(1).nudge(#left)
end repeat
end
-------------------------------------------------------------------------------------------------------
getHotSpotRect() 用于控制热点,判断当前的舞台上有没有热区以及是否可见,可见返回热区的位置.
语法:
sprite(whichQTVRSprite).getHotSpotRect(hotSpotID)
getHotSpotRect(whichQTVRSprite, hotSpotID)
描述:
QuickTime VR 函数; 返回一个被指定热区的近似的热区矩形范围。 如果热区不存在或在舞台上不可见,此函数返回rect(0, 0, 0, 0)。如果热区部分可见,这个函数返回可见部分的矩形范围。
------------------------------------------------------------------------------------------------------------
hotSpotExitCallback 用于控制热点
语法:
sprite(whichQTVRSprite).hotSpotExitCallback
the hotSpotExitCallback of sprite whichQTVRSprite
描述:
QuickTime VR精灵属性;当光标离开显示于舞台上的QuickTime VR热点时包含此名称的句柄开始运行。此QuickTime VR精灵首先收到一个消息。此消息有两个参数: me参数和光标所离开的热点的ID清除调用,设置此属性为0。为避免性能损失,仅在需要时设置一个callback属性。此属性可测试和设置。
---------------------------------------------------------------------------------
hotSpotEnterCallback 用于控制热点
语法:
sprite(whichQTVRSprite).hotSpotEnterCallback
the hotSpotEnterCallback of sprite whichQTVRSprite
描述:
QuickTime VR精灵属性;当光标离开显示于舞台上的QuickTime VR热点时包含此名称的句柄开始运行。此QuickTime VR精灵首先收到一个消息。此消息有两个参数: me参数和光标所进入的热点的ID清除调用,设置此属性为0。为避免性能损失,仅在需要时设置一个callback属性。此属性可测试和设置。
-------------------------------------------------------------------------------------------------------------------
triggerCallback 用于控制热点
语法
sprite(whichQTVRSprite).triggerCallback
triggerCallback of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性; 包含当用户在一个 QuickTime VR 影片中单击一个热点时运行的程序的名称。此处理程序有两个参数: the me 参数和用户点击的热点的 ID 。
程序返回的值决定了影片如何处理此热点。如果程序返回 #continue,QuickTime VR sprite 正常地继续处理此热点,如果程序返回 #cancel,热点的默认行为被取消。
设置此属性为 0 将清除此复查。
The QuickTime VR sprite 首先接收到此信息。
要避免性能的降低,只在需要时设置 triggerCallback 属性。
这个属性可以被测试和设置。
例子
当播放头第一次进入此 sprite 的范围时,下面的语句为一个 QuickTime VR sprite 设置名为 MyHotSpotCallback 的复查程序。那个热点每次被触发,MyHotSpotCallback 程序执行。当播放头离开此 sprite 的范围时,复查取消。
property pMySpriteNum, spriteNum
on beginSprite me
pMySpriteNum = me.spriteNum
sprite(pMySpriteNum).triggerCallback = #MyHotSpotCallback
end
on MyHotSpotCallback me, hotSpotID
put "Hotspot" && hotSpotID && "was just triggered"
end
on endSprite me
sprite(pMySpriteNum).triggerCallback = 0
end
----------------------------------------------------------------------------------------------------------------------------
ptToHotSpotID() 确认指定点是否是热区.
语法
ptToHotSpotID(whichQTVRSprite, point)
描述
QuickTime VR函数;如果指定点是热点,则返回其ID。如果没有热点,本函数返回0。
----------------------------------------------------------------------------------------------------------------
isVRMovie --测试是否是VR电影
语法:
member(whichCastMember).isVRMovie
isVRMovie of member whichCastMember
sprite(whichSprite).isVRMovie
isVRMovie of sprite whichSprite
描述:
QuickTime角色或精灵的一个属性,用于确定一个QuickTime VR Movie角色是否已经被下载下来了(返回true),或者一个角色或精灵是否是一个QuickTime VR Movie(返回false)。测试这个属性比用# quickTimeMedia类型检测时返回错误的信息要好。
这个属性只能被测试,不能被用于设置或修改。
例如:
这个句柄(函数)用于检测一个精灵或角色是否是一个QuickTime movie影片。如果是,这个函数进下步检测它是不是一个QuickTime VR Movie,并在任何情况下都返回一个提示警告。
on checkForVR theSprite
if sprite(theSprite).member.type = #quickTimeMedia then
if sprite(theSprite).isVRMovie then
alert "This is a QTVR asset."
else
alert "This is not a QTVR asset."
end if
else
alert "This is not a QuickTime asset."
end if
end
-----------------------------------------------------------------------------------------------------------------------------
swing() 将QTVR全景图像移动到新位置. 设置的参数有pan,tilt,fieldofView以及移动的速度SpeedToswing
语法
WhichQTVRSprite.swing(pan, tilt, fieldOfView, speedToSwing)
swing (whichQTVRSprite, pan, tilt, fieldOfView, speedToSwing)
描述
QuickTime VR 命令; 将QTVR全景图像移动到新位置.
例子
sprite(1).swing(300, -15, 40, 1)
---------------------------------------------------------------------------------------------
pan (QTVR property) --全景图象的横向移动
语法
pan of sprite whichQTVRSprite
描述
QTVR sprite 属性;当前的QTVR影片的面板。值用度来表示。
此属性可以被检测和设置。
-----------------------------------------------------------------------------------
tilt --全景图象的上下移动
语法
tilt of sprite (whichQTVRSprite)
描述
QTVR,属性 某个QTVR影片当前的倾斜角度,用角度表示。
这个属性可以读取也可以设置。
---------------------------------------------------------------------------------------
node --当前节点(场景)的ID
语法
sprite(whichQTVRSprite).node
the node of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性。把当前节点ID显示在sprite中。
这个属性可设置也可读。
--------------------------------------------------------------------------------------------
staticQuality --图象静止时的质量
语法
staticQuality of sprite whichQTVRSprite
描述
QTVR,属性 全景图像静止时的质量。可能的值有:#minQuality,#maxQuality,#normalQuality
此属性可被检测以及设置。
---------------------------------------------------------------------------------------------------------------------
motionQuality --图象移动时的质量
语法
sprite(whichQTVRSprite).motionQuality
motionQuality of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性;当用户点击和拖动the QuickTime VR sprite 时,用到codec(多媒体数字信号编解码器)质量。属性值可以是#minQuality,#maxQuality, or #normalQuality。
属性可以检验和赋值。
---------------------------------------------------------------------------------------------------------------------------------------
nodeEnterCallback 一个新的节点(也称新场景进入时调用的函数)
语法
sprite(whichQTVRSprite).nodeEnterCallback
the nodeEnterCallback of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性。容纳句柄名字在舞台中的QuickTime VR 影片转变为一个新的活动节点之后。这个消息有两个参数:ME 参数和节点ID是被显示的。
24 QuickTime VR sprite 首先接收到这个消息。
25 清除回收信号,设置这个属性为0。
26 为避免执行失败,仅当必需时才设置这个回收信号属性。
27 这个属性是可读和可设置的
------------------------------------------------------------------------------------------------------------------------------------------
nodeExitCallback 一个旧的节点(也称旧场景退出时调用的函数),我们可以在此事件中设置即跳不跳往新的场景
语法
sprite(whichQTVRSprite).nodeExitCallback
the nodeExitCallback of sprite whichQTVRSprite
描述
QuickTime VR sprite属性;容纳句柄名字当舞台中的QuickTime VR 影片快要转变为一个新的活动节点时。 这个消息有两个参数:一个是 ME 参数,另一个是:影片中快要离开时的节点ID和影片快要转变时的节点ID。
这句柄返回的值确定于无论影片进行到下一个节点。如果句柄返回 #continue,QuickTime VR sprite 继续 向一个标准的节点转变,如果句柄返回 #cancel,则这个转变没有出现和影片被中止在最初的节点。 设置这个属性为0可以清除回收信号。QuickTime VR sprite 首先接收到这个消息。为避免执行失败,仅当必需时才设置这个回收信号属性。
这个属性是可读和可设置的。
----------------------------------------------------------------------------------------------------------------------------------------------
warpMode --设置图片是否扭曲
语法:
sprite(whichQTVRSprite).warpMode warpMode of sprite whichQTVRSprite
描述:
QTVR属性,控制QTVR的变形,可以被设置为#full,#parital或#none.一般我们使用FULL属性
例子:
sprite(1).warpMode = #full
------------------------------------------------------------------------------------------------------------------------------------------------
mouseLevel
语法:
spriteObjRef.mouseLevel
描述:
控制quicktime精灵向quicktime传递点击事件的方式
#controller--Passes clicks only on the movie controller to QuickTime. Director responds only to mouse clicks that occur outside the controller. This is the standard behavior for QuickTime sprites other than QuickTime VR.
鼠标点击事件只传递到QuickTime的控制条上,而Director只响应控制条以外的区域.
#all--Passes all mouse clicks within the sprite's bounding rectangle to QuickTime. No clicks pass to other Lingo handlers.
传递所有的鼠标点击事件到QuickTime,不再传递到其他lingo句柄,既不响应附载其上面行为里的如mouseup,mousedown等句柄
#none--Does not pass any mouse clicks to QuickTime. Director responds to all mouse clicks.
不传递任何鼠标事件到QuickTime,全部由lingo控制.
#shared--Passes all mouse clicks within a QuickTime VR sprite's bounding rectangle to QuickTime and then passes these events to Lingo handlers. This is the 传递所有的事件到QuickTime和lingo句柄
default value for QuickTime VR.
属性能够被测试和设置
Example
This frame script checks to see if the name of the QuickTime sprite in channel 5 contains the string "QTVR." If it does, this script sets mouseLevel to #all; otherwise, it sets mouseLevel to #none.
-- Lingo syntax
on prepareFrame
if sprite(5).member.name contains "QTVR" then
sprite(5).mouseLevel = #all
else
sprite(5).mouseLevel = #none --设置为none可以节省资源.
end if
end
scriptNum:返回依附在精灵上的脚本在castlib中的位置.
sprite(spritenum).scriptNum.
-------------------------------------------------------------
script("scriptnum").function or script(intnum).function
如以下格式:
我们可以采用_movie.script("alert").setalert()这样的方式来执行一个脚本alert里面的setalert函数,当然如果alert为moive类型,则可以直接呼叫,但是如果全局呼叫过多则会破坏封装,而采用这种方法可以呼叫behavior类型alert里面的setalert函数,返回值为函数返回值.
alertname = _movie.script("alert").setalert()
on setalert me --alert行为.
return alertname
end
---------------------------------------------------------------
script(memberNameOrNum {, castNameOrNum})
此函数和以上的函数不一样,以上的函数是直接调用script函数里的一个行为.返回值是函数行为里面使用return返回的值,如果没有使用return返回值.则返回值为void.而本函数则是直接返回此behavior行为的指针对象.我们可以通过此指针对象来直接调用此脚本的各种函数.
---------------------------------------------------------------
channel(internum).scripted
此函数的作用是判断相应的通道是否在脚本的控制下,一般如果我们使用了_movie.puppetsprite(internum,bool)的方式设置为木偶的时候,其值为真,否则的话,其值为假.
if (channel(5).scripted = FALSE) then
channel(5).makeScriptedSprite(member("kite"))
end if
-----------------------------------------------------------------
channel.makeScriptedSprite(member("***"))
将指定的演员放在指定的位置上.并同时使通道channel的scripted属性变为真.既控制权由score转换为script.
-------------------------------------------------------------------
channel.removeScriptedSprite(member("***"))
将指定的演员放在指定的位置上.并同时使通道channel的scripted属性变为真.既控制权由script转换为score.
---------------------------------------------------------------------
scriptInstanceList
描叙一个具体的精灵上的精灵列表,此属性可以读和写.只在运行时有效.我们可以使用sprite(1).property的方式在run状态访问精灵上行为属性变量,我们也可以使用sprite(1).scriptinstance[1].property的方式来进行访问.
-----------------------------------------------------------------------
scriptList
描述一个精灵上的行为列表.此属性可以读和通过setScriptList方法来设置.与scriptInstanceList区别的是,他是在编辑状态时存在与精灵上的行为列表.而scriptInstanceList是运行时态.
-------------------------------------------------------------------------
setScriptList
此行为不能用于录制状态.需要在录制完成以后才能使用.
--------------------------------------------------------------------------
scriptText
演员的脚本程序,如果不是#script类型则其为空,否则为其脚本程序.可以读和写.当在编译后状态时,我们读出的为空值,不过我们仍然可以设置其的值,其值是自动编译运行的.
------------------------------------------------------------------------------
type和scripttype
type来表示member的具体的类型,有#text,#script,#flash等等,而scripttype为#script里面的具体类型,有#movie,#parent,#behavior等.
------------------------------------------------------------------------------
new
new的用法比较复杂,通常有下面这些用法:
1.new(type)
new(type, castLib whichCast)
new(type, member whichCastMember of castLib whichCast)
新建一个类型的演员.可以指定类型,演员表和演员名字.
2 variableName = new(parentScript arg1, arg2, ...)
new(script parentScriptName, value1, value2, ...)
用于生成子对象,当父脚本中有new的参数的时候(on new me),使用script.new()的方法来生成一个子对象.如果不是
3 timeout("name").new(timoutPeriod, #timeoutHandler, {, targetObject})
生成一个定时器对象.
4 new(xtra "xtraName")
生成一个新的xtra对象.
-----------------------------------------------------------------------------------------
call #handlerName, script, {args...}
call (#handlerName, scriptInstance, {args...})
对于Call,我们可以这样用,我们首先生成一个行为对象列表,既列表里面的值为行为的指针,然后我们可以使用:
Call(#handlerName,ScriptList,{args...})这样我们就可以只调用在scriptList列表里面的行为而不需要将Message传递到所有的精灵或其他地方去.
---------------------------------------------------------------------------------------------
ancestor = new(script "What_Everyone_Does")
当在父脚本中写到以上的程序时,脚本What_Everyone_Does成为此父脚本的的祖先类.此脚本可以使用祖先脚本的方法和属性.不过一个父脚本只能有一个祖先,而祖先同样可以拥有自己的祖先.
------------------------------------------------------------------------------------------------
handlers()
我们可以使用Handlers属性来输出一个脚本所有的行为函数.
put script("getmessage").handlers()
---------------------------------------------------------------------------------------------
handler()
我们可以使用handler()函数来判断一个特定的脚本里是否含有此函数.
script("getmessage").handler("#new")
1 使用_player.windowList来列举所有的窗口.
2 使用Display Template来设置MIAW的缺省属性.
3 使用MovetoFront和moveToBack来将窗口前置或后置
4 MIAW的部分事件:
on movewindow
on resizewindow
on zoomWindow
on openWindow
on activateWindow
on deactivateWindow
on activateApplication
on deactivate Application
on trayIconMouseDown(windows only)
在托盘图标上单击
on trayIconDoubleclick(windows only)
在托盘图标上双击
on trayIconRightMouseDown(windows only)
在托盘图标上点击右键.
5 在不同的MIAW中通讯,我们可以使用window("MIAW").movie.member(1).name等这样的方式进行,注意主窗口使用的Window("stage")的方式,全局变量在所有的窗口中都是可以共享的.
6 建立一个MIAW窗口.我们使用window().new("window name")(lingo)或new window("window name")(javascript),窗口自动加入windowlist里面.你可以使用window对象来获取一个窗口而便于以后操作此窗口.如ojbwindow=_player.windowlist[1]这种形式.
7 Title属性显示在标题拦里面,并可以使用FileName来确认外部窗口的具体位置,如window("miaw").filename="c:\test\miaw.dir".同时可以使用Name来重新定义窗口的名字,此名字用来引用此窗口.此名字同时显示在windowlist里面.
8 使用window("aaron").open()的方式来打开一个窗口.使用close()方式关闭窗口不过仍然驻留内存,使用forget()彻底关闭窗口.
9 使用Rect,drawrect和stageRect,sourceRect来控制窗口的显示.
Drawrect是movie内容与其属于的窗口的位置,如果显示内容的左上点与窗口的左上点重合,则drawRect的值将是rect(0,0,640,480)这样的形式.而rect是窗口相对与屏幕的位置,如果窗口的左上点和屏幕的左上点是重合的,则rect的值将是rect(0,0,800,600)这样的格式.而SourceRect则返回最初的窗口大小.
10 部分MAIW的设置:
Type:包括tool,document和dialog三种,tool方式不接受Activate和deactivate事件,而如果是document方式,则显示最基本的窗口方式.dialog窗口总是最前并且是模态的.
location:当窗口小于屏幕大小的时候,locaiton用来设置与左上的距离.改动location的值,同时就改动了sourceRect的值.
centered 总是将窗口放在屏幕的中央.
resizable 设置窗口是否是可以可伸缩的.
docking 设置MIAW是否可以停靠.主要我们用来制作插件类的MIAW时使用.tool和docment格式的MIAW可以和相应的窗口停靠在一起.
Maximize Box :最大化按钮
Close Box 关闭按钮
Minimize Box 最小化按钮
Visible 如果为不可见时,以上三个按钮无效
Icon 设置显示在title上的图片.为director内部的图片.
Mask 设置蒙板
Drag Msak 设置可以拖动的部位.
11 部分方法:
minimize() 最小化窗口 window("miaw").minimize()
maximize() 最大化窗口 window("miaw").maximize()
restore() 最大化窗口以后恢复原来的窗口 window("miaw").restore();
notifyUser() 当窗口缩小到任务条的时候,使用window("miaw").notifyUser(-1,10000)的方式可以提示用户.(表现为在任务条上闪烁)
displaySystemTrayMessage() 在托盘显示区显示一个信息,其中systemTrayTooltip属性必须设置为true.
而systemTrayTooltip有效则必须systemTrayIcon设置为1.同时我们必须选定一个member作为Title bar下面的icon属性,否则上面所有的设置都无法看到效果.而Icon属性有效则必须设置titlebarOptions的visible属性为true.(真的是有点麻烦)
12 许多的设置只有在发布成为project后才能够体现.在编辑状态无法观察到结果.
补充:
sendsprite 和call的区别:sendsprite发送消息到所有的接受器,而call则不发送消息到frame script,movie script,member of script对象
enableHotSpot
QTVR命令,用于打开或者是关闭QTVR影片里面的热点。
--------------------------------------------------------------------------
nodeType
sprite(whichQTVRSprite).nodeType
nodeType of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性;供给当前舞台指定sprite的节点类型.可能和值是:#object, #panorama, or #unknown.(#unknown当sprite不是一个QuickTime VR sprite时返回的值)。
这个属性可读和可设置。
------------------------------------------------- -------------------------
fieldOfView --控制全景图的放大与缩小,实际就是视野的大小,视野越大,图象越小.
语法:
sprite(whichQTVRSprite).fieldOfView
the fieldOfView of sprite whichQTVRSprite
描述:
QTVR角色属性;给出指定的角色的当前视点的角度范围这个属性能检验和设置。
-------------------------------------------------------------------------------------------
nudge 用于控制全景图的移动
语法
sprite(whichQTVRSprite).nudge(#direction )
nudge(sprite whichQTVRSprite, #direction)
描述
QuickTime VR命令;根据参数#direction指定的方向轻推指定的QuickTime VR sprite画面的视点。
#direction的值可以是#down,#downLeft,#downRight,#left,#right,#up,#upLeft和#upRight。
轻推右边就会使sprite画面的图像向左移动。
nudges命令没有返回值。
例子
在鼠标在sprite上被按下时,就会促使QTVRsprite画面的视点向左移动。
on mouseDown me
repeat while the stillDown
sprite(1).nudge(#left)
end repeat
end
-------------------------------------------------------------------------------------------------------
getHotSpotRect() 用于控制热点,判断当前的舞台上有没有热区以及是否可见,可见返回热区的位置.
语法:
sprite(whichQTVRSprite).getHotSpotRect(hotSpotID)
getHotSpotRect(whichQTVRSprite, hotSpotID)
描述:
QuickTime VR 函数; 返回一个被指定热区的近似的热区矩形范围。 如果热区不存在或在舞台上不可见,此函数返回rect(0, 0, 0, 0)。如果热区部分可见,这个函数返回可见部分的矩形范围。
------------------------------------------------------------------------------------------------------------
hotSpotExitCallback 用于控制热点
语法:
sprite(whichQTVRSprite).hotSpotExitCallback
the hotSpotExitCallback of sprite whichQTVRSprite
描述:
QuickTime VR精灵属性;当光标离开显示于舞台上的QuickTime VR热点时包含此名称的句柄开始运行。此QuickTime VR精灵首先收到一个消息。此消息有两个参数: me参数和光标所离开的热点的ID清除调用,设置此属性为0。为避免性能损失,仅在需要时设置一个callback属性。此属性可测试和设置。
---------------------------------------------------------------------------------
hotSpotEnterCallback 用于控制热点
语法:
sprite(whichQTVRSprite).hotSpotEnterCallback
the hotSpotEnterCallback of sprite whichQTVRSprite
描述:
QuickTime VR精灵属性;当光标离开显示于舞台上的QuickTime VR热点时包含此名称的句柄开始运行。此QuickTime VR精灵首先收到一个消息。此消息有两个参数: me参数和光标所进入的热点的ID清除调用,设置此属性为0。为避免性能损失,仅在需要时设置一个callback属性。此属性可测试和设置。
-------------------------------------------------------------------------------------------------------------------
triggerCallback 用于控制热点
语法
sprite(whichQTVRSprite).triggerCallback
triggerCallback of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性; 包含当用户在一个 QuickTime VR 影片中单击一个热点时运行的程序的名称。此处理程序有两个参数: the me 参数和用户点击的热点的 ID 。
程序返回的值决定了影片如何处理此热点。如果程序返回 #continue,QuickTime VR sprite 正常地继续处理此热点,如果程序返回 #cancel,热点的默认行为被取消。
设置此属性为 0 将清除此复查。
The QuickTime VR sprite 首先接收到此信息。
要避免性能的降低,只在需要时设置 triggerCallback 属性。
这个属性可以被测试和设置。
例子
当播放头第一次进入此 sprite 的范围时,下面的语句为一个 QuickTime VR sprite 设置名为 MyHotSpotCallback 的复查程序。那个热点每次被触发,MyHotSpotCallback 程序执行。当播放头离开此 sprite 的范围时,复查取消。
property pMySpriteNum, spriteNum
on beginSprite me
pMySpriteNum = me.spriteNum
sprite(pMySpriteNum).triggerCallback = #MyHotSpotCallback
end
on MyHotSpotCallback me, hotSpotID
put "Hotspot" && hotSpotID && "was just triggered"
end
on endSprite me
sprite(pMySpriteNum).triggerCallback = 0
end
----------------------------------------------------------------------------------------------------------------------------
ptToHotSpotID() 确认指定点是否是热区.
语法
ptToHotSpotID(whichQTVRSprite, point)
描述
QuickTime VR函数;如果指定点是热点,则返回其ID。如果没有热点,本函数返回0。
----------------------------------------------------------------------------------------------------------------
isVRMovie --测试是否是VR电影
语法:
member(whichCastMember).isVRMovie
isVRMovie of member whichCastMember
sprite(whichSprite).isVRMovie
isVRMovie of sprite whichSprite
描述:
QuickTime角色或精灵的一个属性,用于确定一个QuickTime VR Movie角色是否已经被下载下来了(返回true),或者一个角色或精灵是否是一个QuickTime VR Movie(返回false)。测试这个属性比用# quickTimeMedia类型检测时返回错误的信息要好。
这个属性只能被测试,不能被用于设置或修改。
例如:
这个句柄(函数)用于检测一个精灵或角色是否是一个QuickTime movie影片。如果是,这个函数进下步检测它是不是一个QuickTime VR Movie,并在任何情况下都返回一个提示警告。
on checkForVR theSprite
if sprite(theSprite).member.type = #quickTimeMedia then
if sprite(theSprite).isVRMovie then
alert "This is a QTVR asset."
else
alert "This is not a QTVR asset."
end if
else
alert "This is not a QuickTime asset."
end if
end
-----------------------------------------------------------------------------------------------------------------------------
swing() 将QTVR全景图像移动到新位置. 设置的参数有pan,tilt,fieldofView以及移动的速度SpeedToswing
语法
WhichQTVRSprite.swing(pan, tilt, fieldOfView, speedToSwing)
swing (whichQTVRSprite, pan, tilt, fieldOfView, speedToSwing)
描述
QuickTime VR 命令; 将QTVR全景图像移动到新位置.
例子
sprite(1).swing(300, -15, 40, 1)
---------------------------------------------------------------------------------------------
pan (QTVR property) --全景图象的横向移动
语法
pan of sprite whichQTVRSprite
描述
QTVR sprite 属性;当前的QTVR影片的面板。值用度来表示。
此属性可以被检测和设置。
-----------------------------------------------------------------------------------
tilt --全景图象的上下移动
语法
tilt of sprite (whichQTVRSprite)
描述
QTVR,属性 某个QTVR影片当前的倾斜角度,用角度表示。
这个属性可以读取也可以设置。
---------------------------------------------------------------------------------------
node --当前节点(场景)的ID
语法
sprite(whichQTVRSprite).node
the node of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性。把当前节点ID显示在sprite中。
这个属性可设置也可读。
--------------------------------------------------------------------------------------------
staticQuality --图象静止时的质量
语法
staticQuality of sprite whichQTVRSprite
描述
QTVR,属性 全景图像静止时的质量。可能的值有:#minQuality,#maxQuality,#normalQuality
此属性可被检测以及设置。
---------------------------------------------------------------------------------------------------------------------
motionQuality --图象移动时的质量
语法
sprite(whichQTVRSprite).motionQuality
motionQuality of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性;当用户点击和拖动the QuickTime VR sprite 时,用到codec(多媒体数字信号编解码器)质量。属性值可以是#minQuality,#maxQuality, or #normalQuality。
属性可以检验和赋值。
---------------------------------------------------------------------------------------------------------------------------------------
nodeEnterCallback 一个新的节点(也称新场景进入时调用的函数)
语法
sprite(whichQTVRSprite).nodeEnterCallback
the nodeEnterCallback of sprite whichQTVRSprite
描述
QuickTime VR sprite 属性。容纳句柄名字在舞台中的QuickTime VR 影片转变为一个新的活动节点之后。这个消息有两个参数:ME 参数和节点ID是被显示的。
24 QuickTime VR sprite 首先接收到这个消息。
25 清除回收信号,设置这个属性为0。
26 为避免执行失败,仅当必需时才设置这个回收信号属性。
27 这个属性是可读和可设置的
------------------------------------------------------------------------------------------------------------------------------------------
nodeExitCallback 一个旧的节点(也称旧场景退出时调用的函数),我们可以在此事件中设置即跳不跳往新的场景
语法
sprite(whichQTVRSprite).nodeExitCallback
the nodeExitCallback of sprite whichQTVRSprite
描述
QuickTime VR sprite属性;容纳句柄名字当舞台中的QuickTime VR 影片快要转变为一个新的活动节点时。 这个消息有两个参数:一个是 ME 参数,另一个是:影片中快要离开时的节点ID和影片快要转变时的节点ID。
这句柄返回的值确定于无论影片进行到下一个节点。如果句柄返回 #continue,QuickTime VR sprite 继续 向一个标准的节点转变,如果句柄返回 #cancel,则这个转变没有出现和影片被中止在最初的节点。 设置这个属性为0可以清除回收信号。QuickTime VR sprite 首先接收到这个消息。为避免执行失败,仅当必需时才设置这个回收信号属性。
这个属性是可读和可设置的。
----------------------------------------------------------------------------------------------------------------------------------------------
warpMode --设置图片是否扭曲
语法:
sprite(whichQTVRSprite).warpMode warpMode of sprite whichQTVRSprite
描述:
QTVR属性,控制QTVR的变形,可以被设置为#full,#parital或#none.一般我们使用FULL属性
例子:
sprite(1).warpMode = #full
------------------------------------------------------------------------------------------------------------------------------------------------
mouseLevel
语法:
spriteObjRef.mouseLevel
描述:
控制quicktime精灵向quicktime传递点击事件的方式
#controller--Passes clicks only on the movie controller to QuickTime. Director responds only to mouse clicks that occur outside the controller. This is the standard behavior for QuickTime sprites other than QuickTime VR.
鼠标点击事件只传递到QuickTime的控制条上,而Director只响应控制条以外的区域.
#all--Passes all mouse clicks within the sprite's bounding rectangle to QuickTime. No clicks pass to other Lingo handlers.
传递所有的鼠标点击事件到QuickTime,不再传递到其他lingo句柄,既不响应附载其上面行为里的如mouseup,mousedown等句柄
#none--Does not pass any mouse clicks to QuickTime. Director responds to all mouse clicks.
不传递任何鼠标事件到QuickTime,全部由lingo控制.
#shared--Passes all mouse clicks within a QuickTime VR sprite's bounding rectangle to QuickTime and then passes these events to Lingo handlers. This is the 传递所有的事件到QuickTime和lingo句柄
default value for QuickTime VR.
属性能够被测试和设置
Example
This frame script checks to see if the name of the QuickTime sprite in channel 5 contains the string "QTVR." If it does, this script sets mouseLevel to #all; otherwise, it sets mouseLevel to #none.
-- Lingo syntax
on prepareFrame
if sprite(5).member.name contains "QTVR" then
sprite(5).mouseLevel = #all
else
sprite(5).mouseLevel = #none --设置为none可以节省资源.
end if
end
scriptNum:返回依附在精灵上的脚本在castlib中的位置.
sprite(spritenum).scriptNum.
-------------------------------------------------------------
script("scriptnum").function or script(intnum).function
如以下格式:
我们可以采用_movie.script("alert").setalert()这样的方式来执行一个脚本alert里面的setalert函数,当然如果alert为moive类型,则可以直接呼叫,但是如果全局呼叫过多则会破坏封装,而采用这种方法可以呼叫behavior类型alert里面的setalert函数,返回值为函数返回值.
alertname = _movie.script("alert").setalert()
on setalert me --alert行为.
return alertname
end
---------------------------------------------------------------
script(memberNameOrNum {, castNameOrNum})
此函数和以上的函数不一样,以上的函数是直接调用script函数里的一个行为.返回值是函数行为里面使用return返回的值,如果没有使用return返回值.则返回值为void.而本函数则是直接返回此behavior行为的指针对象.我们可以通过此指针对象来直接调用此脚本的各种函数.
---------------------------------------------------------------
channel(internum).scripted
此函数的作用是判断相应的通道是否在脚本的控制下,一般如果我们使用了_movie.puppetsprite(internum,bool)的方式设置为木偶的时候,其值为真,否则的话,其值为假.
if (channel(5).scripted = FALSE) then
channel(5).makeScriptedSprite(member("kite"))
end if
-----------------------------------------------------------------
channel.makeScriptedSprite(member("***"))
将指定的演员放在指定的位置上.并同时使通道channel的scripted属性变为真.既控制权由score转换为script.
-------------------------------------------------------------------
channel.removeScriptedSprite(member("***"))
将指定的演员放在指定的位置上.并同时使通道channel的scripted属性变为真.既控制权由script转换为score.
---------------------------------------------------------------------
scriptInstanceList
描叙一个具体的精灵上的精灵列表,此属性可以读和写.只在运行时有效.我们可以使用sprite(1).property的方式在run状态访问精灵上行为属性变量,我们也可以使用sprite(1).scriptinstance[1].property的方式来进行访问.
-----------------------------------------------------------------------
scriptList
描述一个精灵上的行为列表.此属性可以读和通过setScriptList方法来设置.与scriptInstanceList区别的是,他是在编辑状态时存在与精灵上的行为列表.而scriptInstanceList是运行时态.
-------------------------------------------------------------------------
setScriptList
此行为不能用于录制状态.需要在录制完成以后才能使用.
--------------------------------------------------------------------------
scriptText
演员的脚本程序,如果不是#script类型则其为空,否则为其脚本程序.可以读和写.当在编译后状态时,我们读出的为空值,不过我们仍然可以设置其的值,其值是自动编译运行的.
------------------------------------------------------------------------------
type和scripttype
type来表示member的具体的类型,有#text,#script,#flash等等,而scripttype为#script里面的具体类型,有#movie,#parent,#behavior等.
------------------------------------------------------------------------------
new
new的用法比较复杂,通常有下面这些用法:
1.new(type)
new(type, castLib whichCast)
new(type, member whichCastMember of castLib whichCast)
新建一个类型的演员.可以指定类型,演员表和演员名字.
2 variableName = new(parentScript arg1, arg2, ...)
new(script parentScriptName, value1, value2, ...)
用于生成子对象,当父脚本中有new的参数的时候(on new me),使用script.new()的方法来生成一个子对象.如果不是
3 timeout("name").new(timoutPeriod, #timeoutHandler, {, targetObject})
生成一个定时器对象.
4 new(xtra "xtraName")
生成一个新的xtra对象.
-----------------------------------------------------------------------------------------
call #handlerName, script, {args...}
call (#handlerName, scriptInstance, {args...})
对于Call,我们可以这样用,我们首先生成一个行为对象列表,既列表里面的值为行为的指针,然后我们可以使用:
Call(#handlerName,ScriptList,{args...})这样我们就可以只调用在scriptList列表里面的行为而不需要将Message传递到所有的精灵或其他地方去.
---------------------------------------------------------------------------------------------
ancestor = new(script "What_Everyone_Does")
当在父脚本中写到以上的程序时,脚本What_Everyone_Does成为此父脚本的的祖先类.此脚本可以使用祖先脚本的方法和属性.不过一个父脚本只能有一个祖先,而祖先同样可以拥有自己的祖先.
------------------------------------------------------------------------------------------------
handlers()
我们可以使用Handlers属性来输出一个脚本所有的行为函数.
put script("getmessage").handlers()
---------------------------------------------------------------------------------------------
handler()
我们可以使用handler()函数来判断一个特定的脚本里是否含有此函数.
script("getmessage").handler("#new")
回复Comments
{commenttime}{commentauthor}
{CommentUrl}
{commentcontent}