Delphi与flash的信息通道

.添加FlashActiveX控件

  要在Delphi中播放flash依赖于FlashActiveX控件,所以我们要先安装它。运行Delphi后,选择选单ComponentImport ActiveX Control,找到SWFlash.OCX(或者Shockwaveflash.ocx) 文件进行安装。安装完成后,ActiveX面板里出现TShockwaveFlash控件,这是DelphiFlashActiveX控件的封装,现在我们就可以用这个控件来播放Flash了。

.TShockwaveFlash主要属性、方法和事件
  
TShockwaveFlash
主要属性如下: 
  ReadyState
:读一个flash文件时的状态;
  TotalFrames
:总帧数,只有当ReadyState = 4时才能访问该属性;
  FrameNum
:当前播放的帧;
  Playing
:播放或暂停一个flash
  Quality
:指定当前渲染的质量,包括0=Low, 1=High2=AutoLow3=AutoHigh
  ScaleMode
:缩放模式,0=ShowAll1= NoBorder2 = ExactFit
  AlignMode
:对齐模式,Left=1Right=2Top=4Bottom=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=Loaded3=Interactive4=Complete 
  OnFSCommand(const command, args: WideString):
可用来读取flash按钮中的参数;

.Delphiflash的信息通道
   
  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控件的SetvariableGetvariable方法来读或写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控件的TSetPropertyTGetProperty方法来读或写flash影片的属性。
  
     
新建一个flash文件,flash主场景中添加一影片(MC),将其name设为MC1.  
      
新建一Delphi工程,Form中添加flash控件,设置好其movie属性,再添加二个Button控件和timer
      
控件,button1caption设为Start;button2caption设为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---------->
表示影片旋转  
posted @ 2009-03-20 10:19  苔苔以苔苔以苔  阅读(982)  评论(2编辑  收藏  举报
猪先飞