delphi播放flash

9.SetZoomRect

语法:SetZoomRect(left As Long,top As Long,right As Long,bottom As Long)

说明:将影片中指定的矩形区域放大到控件的大小。

left(左)、top(顶)、right(右)、bottom(底)的坐标值是相对于控件中的影片有效位置计算的。注意哟,这个函数是从影片的有效区域的左上角开始计算,而不是控件的左上角。

例子:放大影片中从左上角开始的200×200点的矩形区域:

pointsToTwips=20;

movie.SetZoomRect0,0,200*pointsToTwips,200*pointsToTwips

10.Stop

语法:Stop()

说明:停止播放影片。

例子:movie.Stop

11.StopPlay

语法:StopPlay()

说明:停止播放影片。

例子:movie.StopPlay

12.TCallFrame

语法:TCallFrame(target As String,FrameNum As Long)

说明:在由target指定的时间轴中,执行由FrameNum指定的帧中的动作。

例子:要运行主时间轴中第5帧的动作:

movie.TCallFrame"/",4

13.TCallLabel

语法:TCallLabel(target As String,label As String)

说明:在由target指定的时间轴中,执行由label指定的帧中的动作。

例子:要运行主时间轴中名为“HandleScriptNotify”的帧中的动作:

movie.TCallLabel"/","HandleScriptNotify"

14.TGotoFrame

语法:TGotoFrame(target As String,FrameNum As Long)

说明:对于由target指定的时间轴,转到由FrameNum指定的帧。

例子:

movie.TGotoFrame"/MovieClip",2

15.TGotoLabel

语法:TGotoLabel(target As String,label As String)

说明:对于由target指定的时间轴,转到由label指定的帧。

例子:movie.TGotoLabel"/MovieClip","MyLabel"

16.TPlay

语法:TPlay(target As String)

说明:播放由target指定的时间轴。

例子:movie.TPlay"/MovieClip"

17.TSetProperty

语法:TSetProperty(target As String,property As Long,value As String)

说明:对于由target指定的时间轴,把由property指定的属性设为由value指定的值(字符串)。property是一个代表相应属性的编号(详情请参阅附表)。

例子:

DimnameIndexAsLong

nameIndex=13

movie.TSetProperty"/MovieClip",nameIndex,"NewName"

18.TSetPropertyNum

语法:TSetPropertyNum(target As String,property As Long,value As Double)

说明:对于由target指定的时间轴,把由property指定的属性设为由value指定的值(数字)。property是一个代表相应属性的编号(详情请参阅附表)。

例子:

Dim visibilityIndex As Long

visibilityIndex=7

movie.TSetProperty"/MovieClip",visibilityIndex,1

19.TStopPlay

语法:TStopPlay(target As String)

说明:停止播放由target指定的时间轴。

例子:

movie.TStopPlay"/MovieClipToStop"

20.Zoom

语法:Zoom(factor As Long)

说明:以factor指定的相对百分比来缩放视图。factor可以理解为从控件窗口看到的影片占实际大小的百分比。将factor设为0,则视图还原成100%大小。当前视图已经是100%时不能再将其缩小。

例子:将影片放大两倍:

movie.Zoom50

下面的方法都有返回值:

21.CurrentFrame

语法:CurrentFrame()As Long

说明:返回影片的当前帧数。影片的第一帧为0。

例子:

Dim frameNow As Integer

frameNow=movie.currentFrame

22.FlashVersion

语法:FlashVersion() As Long

说明:返回控件版本号。该值共有三个字节,依次是主版本号、次版本号、修订版本号。如我用的Flash播放器控件用此方法返回值是327722,相当于十六进制的&h05002A,相当于5.00.42。

例子:下列程序显示你所使用的控件版本号:

Dim verNum,majorNum,minorNum,revisionNum As Long

verNum=movie.FlashVersion

majorNum=verNum\65536

minorNum=(verNum-majorNum*65536)\256

revisionNum=verNum Mod 256

MsgBox"你的Flash播放器控件的版本号:"&majorNum&"."&minorNum&"."&revisionNum

23.GetVariable

语法:GetVariable(name As String)As String

说明:返回name指定的Flash变量的值。如果变量不存在则返回null。

例子:

Dim firstName,radioButtonValue As String

firstName=movie.GetVariable"FirstName"

radioButtonValue=movie.GetVariable("/Form/RadioButton:Value")

24、IsPlaying

语法:IsPlaying() As Boolean

说明:如果影片正在播放则返回true。

例子:

If movie.IsPlayingThen

MsgBox"影片正在播放中!"

End If

25.PercentLoaded

语法:PercentLoaded() As Long

说明:返回目前已经载入的影片的百分比。取值范围从0到100。

例子:

Dimloaded As Boolean

If movie.PercentLoaded=100 Then

loaded=true

End If

26.TCurrentFrame

语法:TCurrentFrame(target As String)As Long

说明:返回由target指定的时间轴中当前帧的号码。返回的帧号码是从0开始的,也就是说影片的第一帧为0,第二帧为1,以此类推。

例子:

Dim currentFrame As Long

currentFrame=movie.TCurrentFrame("/MovieClip")

27.TCurrentLabel

语法:TCurrentLabel(target As String)As String

说明:返回由target指定的时间轴中当前帧的标签。如果没有当前帧的标签,则返回一个空字符串。

例子:

Dim currentLabel As String

currentLabel=movie.TCurrentLabel("/MovieClip")

28.TGetProperty

语法:TGetProperty(target As String,property As Long)As String

说明:对于由target指定的时间轴,返回由property指定的属性值(字符串)。其中,property是一个代表相应属性的编号(详情请参阅附表)。

例子:

Dim nameIndex As Long

Dim name As String

nameIndex=13

name=movie.TGetProperty("/",nameIndex)

29.TGetPropertyNum

语法:TGetPropertyNum(target As String,property As Long)As Double

说明:对于由target指定的时间轴,返回由property指定的属性值(数字)。其中,property是一个代表相应属性的编号(详情请参阅附表)。

例子:

Dim framesLoadedIndex As Long

Dim framesLoaded As Double

framesLoadedIndex=12

framesLoaded=movie.TGetProperty("/",framesLoadedIndex)

附表:获取及设置属性。相应的每个属性的编号都可用在TGetProperty、TGetPropertyAsNumber、TSetProperty或TSetPropertyNum中,以指出将要访问的属性。

讲到这儿也就差不多了,我们已经可以对Flash影片进行绝大部分的操作了。我想,追求完美的你一定还觉得有些不满足,不肯善罢甘休,非得要十全十美不可。那我们就来看看还有些什么要做的。

三、事件篇

想想看,有些Flash影片一打开就会自动切换到全屏模式播放;有些影片打开后,你改变播放器大小,影片的画面居然不会随之改变;还有些影片播放时,Flash播放器的菜单会隐藏起来。在Flash自带的播放器里可没有“隐藏菜单”的功能吧,这是怎么回事?那就随我来,往下看,让我们听听来自Flash影片的“声音”。

1.FSCommand

语法:FSCommand(command As String,args As String)

说明:在Flash中为影片添加的FSCommand动作可以从影片中传递信息给Flash播放器,Flash播放器或包含播放器控件的网页或程序播放这个影片时就根据得到的这些信息执行相应的动作,从而实现影片内部与外部应用的交互操作。如在Flash中给一个按钮图片添加如下的Action:

on(release){

fscommand("fullscreen","true");

}

当Flash播放器播放这个文件时点击按钮,播放器就会切换到全屏模式。下面是Flash自带的播放器能识别的命令和它们的参数:

命令:quit

参数:无参数

作用:关闭播放器

命令:fullscreen

参数:true或false

作用:设置为true使播放器以全屏模式播放;设置为false使播放器回到一般窗口模式播放。

命令:allowscale

参数:true或false

作用:设为false将使影片不随播放器大小改变而改变,始终保持原始尺寸,相当于播放器菜单中的100%;设为true则恢复影片随播放器大小而改变的尺寸,相当于播放器菜单中的ShowAll。

命令:showmenu

参数:true或false

作用:设为true显示全部菜单,包括菜单栏和播放区的右键菜单;设为false菜单栏不显示,播放区的右键菜单中只有一项“AboutMacromediaFlashPlayer...”。

命令:exec

参数:应用程序的路径及名称

作用:执行一个指定的应用程序。如在Flash影片中添加动作为:

fscommand("exec","regedit");

则播放器播放影片时执行此动作会打开“注册表编辑器”程序。注意哟,Flash自带的播放器接收到这些命令后会执行相应的动作,但在控件中不会有任何反应,只能由程序在FSCommand事件中分析接收到的command和args并编程做出相应处理。

2.OnProgress

语法:Event OnProgress(percentDone As Long)

说明:发生在Flash影片下载时。percentDone是影片已下载的百分比,取值从0到100。

例子:在窗体标题栏中显示下载进度:

Private Sub movie_OnProgress(ByVal percentDone As Long)

form1.Caption="影片已下载:"&percentDone&"%"

End Sub

3.OnReadyStateChange

语法:Event OnReadyStateChange(newState As Long)

说明:发生在控件的准备状态改变时。下面列出了newState可能的值:

0——正在载入

1——未初始化

2——已载入

3——正在交互

4——完成

例子:影片载入完成后出现提示信息,然后开始播放影片:

Private Sub movie_OnReadyStateChange(newState As Long)

If newState=4 Then

MsgBox"影片载入完成!"&vbCrLf&"影片总帧

数:"&movie.TotalFrames

movie.Play

End If

End Sub