Delphi與flash的資訊通道 |
|
AB
高階會員 發表:166 回覆:262 積分:125 註冊:2003-08-21 發送簡訊給我 |
http://www.delphiboy.com/cgi-bin/doc/datacontent.php?no=353 Delphi與flash的資訊通道
一.添加FlashActiveX控制項 要在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---------->表示影片旋轉
小第第一次發表,有何意見儘管往我郵箱裏扔吧!^_^
如需源碼請Email我,我將會把源碼(Delphi和flash)發過去。 文章作者:雨天
文章來源:自創
作者郵箱:yunantian@mail.china.com
|
AB
高階會員 發表:166 回覆:262 積分:125 註冊:2003-08-21 發送簡訊給我 |
以下是原作者 回覆的說明
==================================================================
你好!
資源共享!知識共享!
現給出一個簡單的示例代碼!以供學習!如有不明白的地方!可以提出來
大家一起交流學習!
同時,謝謝你讓更多需要它的人的到了它!
雨天
---------------------------------------------------------------------------------
免費使用時尚通訊工具 http://ads.china.com/suna/link.html
中華網影音交友社區"X都市萬人迷" http://x.china.com
我存在,因為我是中國人!中華網信天郵 http://mail.china.com
中華網企業郵箱,商務成功的標誌 http://corpmail.china.com ====================================================
先進 作者的熱心分享
下載位置
http://delphi.ktop.com.tw/topic.php?TOPIC_ID=42481 發表人 - ab 於 2003/12/21 18:49:35
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |