zoukankan      html  css  js  c++  java
  • 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---------->
    表示影片旋转  
  • 相关阅读:
    C# 利用Log4Net进行日志记录
    驰骋工作流引擎JFlow与activiti的对比之2种结构化模式
    驰骋工作流引擎JFlow与activiti的对比之4种高级分支同步模式
    工作流引擎JFlow与activiti 对比分析(一)5种基本控制流模式的对比
    "整数"组件:<int> —— 快应用组件库H-UI
    "短整数"组件:<short> —— 快应用组件库H-UI
    "字节型整数"组件:<byte> —— 快应用组件库H-UI
    "图片验证码"组件:<vcode> —— 快应用组件库H-UI
    "手机验证码"组件:<smscode> —— 快应用组件库H-UI
    "邮政编码"组件:<postcode> —— 快应用组件库H-UI
  • 原文地址:https://www.cnblogs.com/smallmuda/p/1417411.html
Copyright © 2011-2022 走看看