TShockwaveFlash主要属性、方法和事件

    技术2025-10-26  10

    转自:http://blog.163.com/snowd_rop/blog/static/1157847822010119249230/ 

     

    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---------->表示影片旋转  补充一下:在新版的flash中控件SWFlash.OCX改为Flash.OCX了

    最新回复(0)