ShockwaveFlash控件详解(二)---方法与事件(转)
方法:
下面中的方法不返回值:
1.Back
语法:Back()
说明 : 影片后退一帧 , 并且停止播放 。 例子 :
movie.Back
2.Forward
语法:Forward()
说明 : 影片前进一帧, 并且停止播放。
例子 :
movie.Forward
3.GotoFrame
语法:GotoFrame(FrameNum As Long)
说明:将影片跳转到由 FrameNum 指定的帧,并且停止播放。如果所指定的帧还未载入,播放器前进到最后的可用帧并停下,在调用过程中会产生无法预料的后果。最好使用 PercentLoaded 方法来确定是否已载入足够的影片来执行本方法。参数 FrameNum 是从 0 开始的,这和 Flash 中的 Goto 动作不一样,它是从 1 开始的。
例子:跳转到影片的第 20 帧:
movie.GotoFrame 20
4.LoadMovie
语法:LoadMovie(layer As Long, url As String)
说明:将由 url 指定的影片载入到由 layer 指定的层上。
例子:将 movie.swf 载入至 0 层:
movie.LoadMovie 0, "movie.swf"
5.Pan
语法:Pan(x As Long, y As Long, mode As Long)
说明:将一个放大过的影片平移由 x 和 y 指定的距离。 x 和 y 均为相对值。即控件相对于影片来说平移的距离(你可以想象控件是一个窗户,影片是我们从窗户里看到的放 在外面的布景, 我们看到窗户相对于布景平移了一些距离,那是外面的布景在动,而窗户是不动的)。用 mode 参数 来指定 x 和 y 的值是像素还是窗口的百分比,当 mode=0 时坐标系以像素为单位;mode=1 时坐标系就以窗口的百分 比来计算。平移并不能超出影片的边框,也就是说,往一个方向平移最多到达影片的边缘与控件对齐的程度。
例子:控件相对于影片向左向上各平移 5 个像素(当 然控件不会动 ,是影片向右向下平移了 ):
6.Play
语法:Play()
说明:开始播放影片。
例子:
movie.Play
7.Rewind
语法:Rewind()
说明:倒带。返回到影片的第一帧。
例子:
movie.Rewind
8.SetVariable
语法:SetVariable(name As String, value As String)
说明:将由 name 指定的 Flash 变量值设为 value。
例子:
movie.SetVariable "/Form:UserName", "John Smith"
---------------------------------------------------------------------------
事件:
1.FSCommand
语法:ShockwaveFlash1_FSCommand(ByVal command As String, ByVal args As String)
说明:在flash中调用fscommand()触发的事件
参数:
command :代表命令标识
args :代表参数
例子:
Select Case command '这里可以用 if
'但command多了之后就不好 if 用了
'我是做个示范
Case "command1"
If args = "123" Then
...
Else
...
End If
Case ...
End Select
2.FlashCall
语法:ShockwaveFlash1_FlashCall(ByVal request As String)
说明:可能很少人知道这个事件的用处,其实这个跟 FSCommand 事件是差不多的。与 FSCommand 不同的是,这个事件可以有返回值(下面会谈到)
参数是一个XML格式的字符串,格式是
"<invoke name='%s' returntype='xml'><arguments><string>%s</string></arguments></invoke>",去查查帮助就知道了。
处理request:标准VB没有处理XML的库,你可以自己找支持XML的插件来用。下面就是按照个人需要处理request了。
返回值:
事件处理函数是没有返回值的,但是flash player提供了一个方法:ShockwaveFlash1.SetReturnValue() 专门传递返回值,格式是<string>%s</string>(也可以是别的AS结构,具体看帮助)。
例子:我在这给出tinyxml的例子:
Private Sub ShockwaveFlash1_FlashCall(ByVal request As String)
Dim request_xml As New TiXmlDocument
Dim request_name As String
request_xml.Parse request
request_name = request_xml.RootElement().Attribute("name")
...自己去处理吧
End Sub
3.OnProgress
语法:ShockwaveFlash1_OnProgress(ByVal percentDone As Long)
说明:估计是flash在加载过程中进度改变触发的吧?
percentDone 则应该是个百分数~
反正我还没逮住这个事件一次..= =!
4.OnReadyStateChange
语法:ShockwaveFlash1_OnReadyStateChange(newState As Long)
说明:顾名思义,就是 ReadyState 改变时触发的事件,具体请看上面关于 ReadyState 属性的说明,我在这就不废话了....
至于其他事件,比如
GotFocus啦、LostFocus啦,我也不想废话了...
下面中的方法不返回值:
1.Back
语法:Back()
说明 : 影片后退一帧 , 并且停止播放 。 例子 :
movie.Back
2.Forward
语法:Forward()
说明 : 影片前进一帧, 并且停止播放。
例子 :
movie.Forward
3.GotoFrame
语法:GotoFrame(FrameNum As Long)
说明:将影片跳转到由 FrameNum 指定的帧,并且停止播放。如果所指定的帧还未载入,播放器前进到最后的可用帧并停下,在调用过程中会产生无法预料的后果。最好使用 PercentLoaded 方法来确定是否已载入足够的影片来执行本方法。参数 FrameNum 是从 0 开始的,这和 Flash 中的 Goto 动作不一样,它是从 1 开始的。
例子:跳转到影片的第 20 帧:
movie.GotoFrame 20
4.LoadMovie
语法:LoadMovie(layer As Long, url As String)
说明:将由 url 指定的影片载入到由 layer 指定的层上。
例子:将 movie.swf 载入至 0 层:
movie.LoadMovie 0, "movie.swf"
5.Pan
语法:Pan(x As Long, y As Long, mode As Long)
说明:将一个放大过的影片平移由 x 和 y 指定的距离。 x 和 y 均为相对值。即控件相对于影片来说平移的距离(你可以想象控件是一个窗户,影片是我们从窗户里看到的放 在外面的布景, 我们看到窗户相对于布景平移了一些距离,那是外面的布景在动,而窗户是不动的)。用 mode 参数 来指定 x 和 y 的值是像素还是窗口的百分比,当 mode=0 时坐标系以像素为单位;mode=1 时坐标系就以窗口的百分 比来计算。平移并不能超出影片的边框,也就是说,往一个方向平移最多到达影片的边缘与控件对齐的程度。
例子:控件相对于影片向左向上各平移 5 个像素(当 然控件不会动 ,是影片向右向下平移了 ):
6.Play
语法:Play()
说明:开始播放影片。
例子:
movie.Play
7.Rewind
语法:Rewind()
说明:倒带。返回到影片的第一帧。
例子:
movie.Rewind
8.SetVariable
语法:SetVariable(name As String, value As String)
说明:将由 name 指定的 Flash 变量值设为 value。
例子:
movie.SetVariable "/Form:UserName", "John Smith"
---------------------------------------------------------------------------
事件:
1.FSCommand
语法:ShockwaveFlash1_FSCommand(ByVal command As String, ByVal args As String)
说明:在flash中调用fscommand()触发的事件
参数:
command :代表命令标识
args :代表参数
例子:
Select Case command '这里可以用 if
End Select
2.FlashCall
语法:ShockwaveFlash1_FlashCall(ByVal request As String)
说明:可能很少人知道这个事件的用处,其实这个跟 FSCommand 事件是差不多的。与 FSCommand 不同的是,这个事件可以有返回值(下面会谈到)
参数是一个XML格式的字符串,格式是
"<invoke name='%s' returntype='xml'><arguments><string>%s</string></arguments></invoke>",去查查帮助就知道了。
处理request:标准VB没有处理XML的库,你可以自己找支持XML的插件来用。下面就是按照个人需要处理request了。
返回值:
事件处理函数是没有返回值的,但是flash player提供了一个方法:ShockwaveFlash1.SetReturnValue() 专门传递返回值,格式是<string>%s</string>(也可以是别的AS结构,具体看帮助)。
例子:我在这给出tinyxml的例子:
Private Sub ShockwaveFlash1_FlashCall(ByVal request As String)
Dim request_xml As New TiXmlDocument
Dim request_name As String
request_xml.Parse request
request_name = request_xml.RootElement().Attribute("name")
...自己去处理吧
End Sub
3.OnProgress
语法:ShockwaveFlash1_OnProgress(ByVal percentDone As Long)
说明:估计是flash在加载过程中进度改变触发的吧?
percentDone 则应该是个百分数~
反正我还没逮住这个事件一次..= =!
4.OnReadyStateChange
语法:ShockwaveFlash1_OnReadyStateChange(newState As Long)
说明:顾名思义,就是 ReadyState 改变时触发的事件,具体请看上面关于 ReadyState 属性的说明,我在这就不废话了....
至于其他事件,比如
GotFocus啦、LostFocus啦,我也不想废话了...