?? delphiflash.txt
字號(hào):
Delphi與flash的信息通道
一.添加FlashActiveX控件
要在Delphi中播放flash依賴(lài)于FlashActiveX控件,所以我們要先安裝它。運(yùn)行Delphi后,選擇選單Component→Import ActiveX Control,找到SWFlash.OCX(或者Shockwaveflash.ocx) 文件進(jìn)行安裝。安裝完成后,ActiveX面板里出現(xiàn)TShockwaveFlash控件,這是Delphi對(duì)FlashActiveX控件的封裝,現(xiàn)在我們就可以用這個(gè)控件來(lái)播放Flash了。
二.TShockwaveFlash主要屬性、方法和事件
TShockwaveFlash主要屬性如下:
ReadyState:讀一個(gè)flash文件時(shí)的狀態(tài);
TotalFrames:總幀數(shù),只有當(dāng)ReadyState = 4時(shí)才能訪問(wèn)該屬性;
FrameNum:當(dāng)前播放的幀;
Playing:播放或暫停一個(gè)flash;
Quality:指定當(dāng)前渲染的質(zhì)量,包括0=Low, 1=High、2=AutoLow、3=AutoHigh;
ScaleMode:縮放模式,0=ShowAll、1= NoBorder、2 = ExactFit;
AlignMode:對(duì)齊模式,Left=1、Right=2、Top=4、Bottom=8;
BackgroundColor:背景色,-1為默認(rèn)顏色;
Loop:是否循環(huán);
Movie:指定播放的flash文件路徑,可以為一個(gè)URL。
TShockwaveFlash主要方法如下:
Play():開(kāi)始播放動(dòng)畫(huà);
Stop();停止播放動(dòng)畫(huà);
Back();播放前一幀動(dòng)畫(huà);
Forward():播放后一幀動(dòng)畫(huà);
Rewind():播放第一幀動(dòng)畫(huà);
SetZoomRect(int left, int top, int right, int bottom):設(shè)置縮放的區(qū)域;
Zoom(int percent):縮放(按百分比);
Pan(int x, int y, int mode):縮放播放面板,其中模式0為按像數(shù)、1為按窗口百分比。
TSetProperty(target:widestring,property_:integer,const value widestring):設(shè)定flash中影 片的屬性;
TGetProperty(target:widestring,property_:integer):取得flash中影片的屬性;
GetVariable(const name:widestring):取得flash中動(dòng)態(tài)文本的值;
SetVariable(const name:widestring,const value:widestring):設(shè)定flash中動(dòng)態(tài)文本的值;
TShockwaveFlash主要事件如下:
OnProgress(int percent):讀取一個(gè)flash時(shí)觸發(fā);
OnReadyStateChange(int state):狀態(tài)改變時(shí)觸發(fā)。states的值可以為0=Loading、
OnFSCommand(const command, args: WideString):可用來(lái)讀取flash按鈕中的參數(shù);
三.Delphi與flash的信息通道
1.利用flash控件的Fscommand屬性來(lái)讀取flash按鈕中的參數(shù)及參數(shù)的值。
例: 新建一個(gè)flash文件,在flash主場(chǎng)景中添加四個(gè)按鈕依次在按鈕中添加如下腳本:
第一個(gè)按鈕: on (release) {
fscommand (”Num1”, ”1”);
}
第二個(gè)按鈕: on (release) {
fscommand (”Num1”, ”2”);
}
第三個(gè)按鈕: on (release) {
fscommand (”Num2”, ”1”);
}
第四個(gè)按鈕: on (release) {
fscommand (”Num2”, ”2”);
}
新建一Delphi工程,在Form中添加flash控件,設(shè)置好其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方法來(lái)讀或?qū)慺lash動(dòng)態(tài)文本框中的內(nèi)容。
例: 新建一個(gè)flash文件,在flash主場(chǎng)景中添加一動(dòng)態(tài)文本框,將其variavle設(shè)為T(mén)ext1.
新建一Delphi工程,在Form中添加flash控件,設(shè)置好其movie屬性,再添加二個(gè)Button控件,雙
擊Button1,添入以下代碼:
procedure TForm1.Button1Click(Sender: TObject);
begin
shockwaveflash1.SetVariable(’Text’,’信息已經(jīng)到達(dá)!’);
end;
雙擊Button2,添入以下代碼:
procedure TForm1.Button2Click(Sender: TObject);
begin
showmessage(shockwaveflash1.GetVariable(’Text’));
end;
3. 利用flash控件的TSetProperty或TGetProperty方法來(lái)讀或?qū)慺lash影片的屬性。
例: 新建一個(gè)flash文件,在flash主場(chǎng)景中添加一影片(MC),將其name設(shè)為MC1.
新建一Delphi工程,在Form中添加flash控件,設(shè)置好其movie屬性,再添加二個(gè)Button控件和timer
控件,button1的caption設(shè)為Start;button2的caption設(shè)為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;
運(yùn)行后,可以看到影片的透明度越來(lái)越小。shockwaveflash1.TGetProperty(’MC1’,6)語(yǔ)句中的6表示影片的透明度屬性,
其他屬性如下:
0----------->表示影片x坐標(biāo)
1----------->表示影片y坐標(biāo)
2----------->表示影片xscale
3----------->表示影片yscale
6----------->表示影片的透明度
7----------->表示影片可見(jiàn)性
8----------->表示影片的寬度
9----------->表示影片的高度
10---------->表示影片旋轉(zhuǎn)
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -