zoukankan      html  css  js  c++  java
  • <转>Delphi与Flash之间的数据交换

    要实现这一功能,首先要用到ActiveX控件中的TShockwaveFlash控件。
    首先让我们来将TShockwaveFlash控件加入到Delphi的组件面板中(没有装Flash的朋友可以从网上下载一个Flash8.ocx文件来进行安装)
    1.打开Delphi(本人用的是Delphi7.0)点击菜单中的Component->Import ActiveX Control...
    2.在弹出的窗口中的Import ActiveX子窗口中找到Shockwave Flash(Version1.0),然后点击Install...按钮,根据提示执行就可以了
    3.安装完成后,你可以发现TShockwaveFlash控件已经加入到Delphi的ActiveX面板中了。

    在这里有必要跟大家讲一些关于TShockwaveFlash控件的属性与方法:
    属性:
    ReadState:读一个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。
    事件&方法:
    Play():开始播放动画。
    Stop():停止播放动画。注意:要实现停止功能,必须同时调用Stop()和Rewind()函数。
    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中变量的值。
    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之间的数据传递只用到其中的GetVariable和SetVariable的两个方法。现在让我们来做一个简单的实例来演示一下如何进行数据传递吧。
    1.打开flash,新建一个影片文件,在场景中加入一个动态文本框,并且给它一个变量,变量名为test,将影片生成swf影片。
    2.打开Delphi,新建一个应用程序,在窗口中加入一个TShockwaveFlash控件(在ActiveX面板中)。
    3.再加入两个按钮,一个用来传递数据,Caption属性:传递  另一个用来接收数据,Caption属性:接收。
    4.在OnCreate事件中加入以下的代码:
      ShockwaveFlash1.Movie:=GetCurrentdir+'\change.swf';//打开刚才制作的Flash影片
      ShockwaveFlash1.Play;//播放
    5.分别为两个按钮加入单击事件,源代码如下:
      //传递数据
      procedure TForm1.Button1Click(Sender: TObject);
      begin
       ShockwaveFlash1.SetVariable('test','传递数据');
      end;

      //接收数据 
    procedure TForm1.Button1Click(Sender: TObject);
      var
         str:String;
      begin
       str:=ShockwaveFlash1.GetVariable('test');
       showmessage(str);
      end;

    6.完成了,测试一下,是不是可以相互传递数据呢?
  • 相关阅读:
    湖南省队集训 Day 2
    一句话题解(~ 2020.4.9)
    NOIP 2017 宝藏
    NOIP 2017 逛公园
    bzoj 4767 两双手
    Codeforces Gym 101623E English Restaurant
    浅谈Tarjan算法
    Codeforces 1027F Session in BSU
    Codeforces Gym 101623A Ascending Photo
    2018-2019 ICPC, NEERC, Southern Subregional Contest (Online Mirror) Solution
  • 原文地址:https://www.cnblogs.com/songrun/p/3125632.html
Copyright © 2011-2022 走看看