在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
要在Delphi中播放flash依赖于FlashActiveX控件,所以我们要先安装它。运行Delphi后,选择选单Component→Import ActiveX Control,找到SWFlash.OCX(或者Shockwaveflash.ocx) 文件进行安装。安装完成后,ActiveX面板里出现TShockwaveFlash控件,这是Delphi对FlashActiveX控件的封装,现在我们就可以用这个控件来播放Flash了。 二.TShockwaveFlash主要属性、方法和事件 TShockwaveFlash主要属性如下: ReadyState:读一个flash文件时的状态; TotalFrames:总帧数,只有当ReadyState = 4时才能访问该属性; FrameNum:当前播放的帧; Playing:播放或暂停一个flash; Quality:指定当前渲染的质量,包括0=Low, 1=High、2=AutoLow、3=AutoHigh; ScaleMode:缩放模式,0=ShowAll、1= NoBorder、2 = ExactFit; AlignMode:对齐模式,Left=1、Right=2、Top=4、Bottom=8; BackgroundColor:背景色,-1为默认颜色; Loop:是否循环; Movie:指定播放的flash文件路径,可以为一个URL。 TShockwaveFlash主要方法如下: Play():开始播放动画; Stop();停止播放动画; Back();播放前一帧动画; Forward():播放后一帧动画; Rewind():播放第一帧动画; SetZoomRect(int left, int top, int right, int bottom):设置缩放的区域; Zoom(int percent):缩放(按百分比); Pan(int x, int y, int mode):缩放播放面板,其中模式0为按像数、1为按窗口百分比。 TSetProperty(target:widestring,property_:integer,const value widestring):设定flash中影 片的属性; TGetProperty(target:widestring,property_:integer):取得flash中影片的属性; GetVariable(const name:widestring):取得flash中动态文本的值; SetVariable(const name:widestring,const value:widestring):设定flash中动态文本的值; TShockwaveFlash主要事件如下: OnProgress(int percent):读取一个flash时触发; OnReadyStateChange(int state):状态改变时触发。states的值可以为0=Loading、 1=Uninitialized、2=Loaded、3=Interactive和4=Complete。 OnFSCommand(const command, args: WideString):可用来读取flash按钮中的参数; 三.Delphi与flash的信息通道 1.利用flash控件的Fscommand属性来读取flash按钮中的参数及参数的值。 例: 新建一个flash文件,在flash主场景中添加四个按钮依次在按钮中添加如下脚本: 第一个按钮: on (release) { fscommand (”Num1”, ”1”); } 第二个按钮: on (release) { fscommand (”Num1”, ”2”); } 第三个按钮: on (release) { fscommand (”Num2”, ”1”); } 第四个按钮: on (release) { fscommand (”Num2”, ”2”); } 新建一Delphi工程,在Form中添加flash控件,设置好其movie属性,双击FSCommand事 件,添入以下代码: procedure TForm1.ShockwaveFlash1FSCommand(Sender: TObject; const command,args: WideString); begin if command=’Num1’ then showmessage(’Num1’); if ((command=’Num1’) and (args=’1’)) then showmessage(’Num1 1’); if ((command=’Num1’) and (args=’2’)) then showmessage(’Num1 2’); if command=’Num2’ then showmessage(’Num1’); if ((command=’Num2’) and (args=’1’)) then showmessage(’Num2 1’); if ((command=’Num2’) and (args=’2’)) then showmessage(’Num2 2’); ( end; 2.利用flash控件的Setvariable或Getvariable方法来读或写flash动态文本框中的内容。 例: 新建一个flash文件,在flash主场景中添加一动态文本框,将其variavle设为Text1. 新建一Delphi工程,在Form中添加flash控件,设置好其movie属性,再添加二个Button控件,双 击Button1,添入以下代码: procedure TForm1.Button1Click(Sender: TObject); begin shockwaveflash1.SetVariable(’Text’,’信息已经到达!’); end; 双击Button2,添入以下代码: procedure TForm1.Button2Click(Sender: TObject); begin showmessage(shockwaveflash1.GetVariable(’Text’)); end; 3. 利用flash控件的TSetProperty或TGetProperty方法来读或写flash影片的属性。 例: 新建一个flash文件,在flash主场景中添加一影片(MC),将其name设为MC1. 新建一Delphi工程,在Form中添加flash控件,设置好其movie属性,再添加二个Button控件和timer 控件,button1的caption设为Start;button2的caption设为End;代码如下: procedure TForm1.Timer1Timer(Sender: TObject); var i:integer; s:string; begin s:=shockwaveflash1.TGetProperty(’MC1’,6); i:=strtoint(s); i:=i-10; s:=inttostr(i); shockwaveflash1.TSetProperty(’MC1’,6,s); end; procedure TForm1.Button1Click(Sender: TObject); begin timer1.Interval :=500; end; procedure TForm1.Button2Click(Sender: TObject); begin timer1.Interval :=0; end; 运行后,可以看到影片的透明度越来越小。shockwaveflash1.TGetProperty(’MC1’,6)语句中的6表示影片的透明度属性, 其他属性如下: 0----------->表示影片x坐标 1----------->表示影片y坐标 2----------->表示影片xscale 3----------->表示影片yscale 6----------->表示影片的透明度 7----------->表示影片可见性 8----------->表示影片的宽度 9----------->表示影片的高度 10---------->表示影片旋转 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论