播放動(dòng)畫的示范稿_第1頁(yè)
播放動(dòng)畫的示范稿_第2頁(yè)
播放動(dòng)畫的示范稿_第3頁(yè)
播放動(dòng)畫的示范稿_第4頁(yè)
播放動(dòng)畫的示范稿_第5頁(yè)
已閱讀5頁(yè),還剩2頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

Play()

播放動(dòng)畫

StopPlay()

停止動(dòng)畫

IsPlaying()

動(dòng)畫是否正在播放(true,false)

GotoFrame(frame_number)

跳轉(zhuǎn)到某幀(frame_number+1)

TotalFrames()

獲取動(dòng)畫總幀數(shù)

CurrentFrame()

回傳當(dāng)前動(dòng)畫所在幀數(shù)-1

Rewind()

使動(dòng)畫返回第一幀

SetZoomRect(left,top,right,buttom)

放大指定區(qū)域

Zoom(percent)

改變動(dòng)畫大小

Pan(x_position,y_position,unit)

使動(dòng)畫在x,y方向上平移

PercentLoaded()

返回動(dòng)畫被載入的百分比(0-100)

LoadMovie(level_number,path)

加載動(dòng)畫

TGotoFrame(movie_clip,frame_number)

movie_clip跳轉(zhuǎn)到指定幀數(shù)

TGotoLabel(muvie_clip,label_name)

movie_clip跳轉(zhuǎn)到指定標(biāo)簽

TCurrentFrame(movie_clip)

回傳movie_clip當(dāng)前幀-1

TCurrentLabel(movie_clip)

回傳movie_clip當(dāng)前標(biāo)簽

TPlay(movie_clip)

播放movie_clip

TStopPlay(movie_clip)

停止movie_clip的播放

GetVariable(variable_name)

獲取變量

SetVariable(variable_name,value)

變量賦值

TCallFrame(movie_clip,frame_number)

call指定幀上的action

TCallLabel(movie_clip,label)

call指定標(biāo)簽上的action

TGetProperty(movie_clip,property)

獲取movie_clip的指定屬性

TSetProperty(movie_clip,property,number)

設(shè)置movie_clip的指定屬性m_pWnd=newCShockwaveFlash();

if(((CShockwaveFlash*)m_pWnd)->Create(NULL,WS_VISIBLE,CRect(0,0,20,20),g_pCurView,IDC_FLASH))

{

((CShockwaveFlash*)m_pWnd)->SetMovie(m_strPathName);//設(shè)置flash動(dòng)畫路徑

((CShockwaveFlash*)m_pWnd)->SetPlaying(TRUE);//選擇開始播放

((CShockwaveFlash*)m_pWnd)->SetLoop(TRUE);//設(shè)置循環(huán)播放為TRUE

((CShockwaveFlash*)m_pWnd)->SetMenu(FALSE);//無擴(kuò)展的彈出菜單

((CShockwaveFlash*)m_pWnd)->SetQuality(1);//設(shè)置播放動(dòng)畫質(zhì)量為高

((CShockwaveFlash*)m_pWnd)->SetWMode("Window");//設(shè)置窗口模式

((CShockwaveFlash*)m_pWnd)->SetEmbedMovie(TRUE);//動(dòng)畫是內(nèi)欠的

((CShockwaveFlash*)m_pWnd)->SetScale("ExactFit");//縮放模式為能顯示動(dòng)畫所有內(nèi)容

((CShockwaveFlash*)m_pWnd)->SetBackgroundColor(-1);//無背景色

((CShockwaveFlash*)m_pWnd)->Rewind();//從頭開始播放

((CShockwaveFlash*)m_pWnd)->Play();//播放

}Flash4是MacroMedia公司出品的矢量動(dòng)畫創(chuàng)作專業(yè)軟件,利用該軟件制作的矢量動(dòng)畫具有文件體積小、帶音效和兼容性好等特點(diǎn)。那么,你想不想在自己編寫的程序中加入Flash動(dòng)畫,為自己的程序添加一道亮麗的色彩呢?

一、編程原理

本程序利用了Flash4本身自帶播放Flash動(dòng)畫的控件Swflash.ocx。你可以通過以下途徑獲得該控件:1、安裝Flash4;2、安裝Windows98自帶的Flash插件,方法:依次單擊“開始”菜單-“設(shè)置”-“控制面板”-“添加/刪除程序”-“Windows

安裝程序”-“多媒體”-“詳細(xì)資料”-選中“Macromedia

Shockwave

Flash”前的復(fù)選框確定即可。以上方法都會(huì)將該控件安裝到Windows目錄下的System\Macromed\Flash子目錄下。

二、示例程序

下面就是一個(gè)用Swflash.ocx控件編寫的Flash動(dòng)畫播放器。本程序可一次打開多個(gè)Flash動(dòng)畫文件,并可在播放過程中選擇播放打開的文件、隨時(shí)改變播放質(zhì)量、畫面大小等狀態(tài);在播放過程中可以隨時(shí)對(duì)播放的當(dāng)前幀數(shù)進(jìn)行調(diào)整或者手動(dòng)進(jìn)行逐幀播放,在狀態(tài)欄里有當(dāng)前播放狀態(tài)的相關(guān)說明。在實(shí)現(xiàn)以上功能時(shí),幾乎用全了Swflash.ocx控件的主要屬性、方法。

編程過程如下:

1、窗體、界面設(shè)計(jì)。

新建工程,選擇“工程”菜單下的“部件”命令,在“部件”窗口的“控件”列表中將“Shockwave

flash”、“Microsoft

Common

Dialog

Control

6.0

(SP3)”、“Microsoft

Windows

Common

Control

6.0

(SP3)”前的復(fù)選框選中,然后確定。再在窗體中分別加入1個(gè)CommonDialog控件、1個(gè)Slider控件、3個(gè)Label控件、6個(gè)CommandButton控件和1個(gè)Status

Bar控件。其中:

將Form1的“Caption”屬性設(shè)置為:Flash動(dòng)畫播放器。這是控制窗口。

將CommonDialog1的CancelError設(shè)置為True,DialogTitle設(shè)置為“打開Flash動(dòng)畫文件”,F(xiàn)ilter屬性設(shè)置為“Flash動(dòng)畫(*.swf)|*.swf|”,F(xiàn)ilterIndex設(shè)置為1,MaxFileSize設(shè)置為10240。

將Slider1的SelectRanger的屬性設(shè)置為“True”,SmallChange屬性和LargeChange屬性設(shè)置為10,TickFrequengcy屬性設(shè)置為20,TextPosition設(shè)置為“1

SldBelowRight”。

將Label(1-3)分別放在Slider1下的左端、中間和右端。其中,Label1的Caption設(shè)置為“0幀”,Label2和Label3的Caption設(shè)置為空字符串。

6個(gè)CommandButton的“名稱”屬性分別為:cmdOpen、cmdPlay、cmdPause、cmdPre、cmdPreFrame、cmdNextFrame、cmdNext、cmdExit,“Caption”屬性分別為:打開、播放、暫停、上一個(gè)、上一幀、下一幀、下一個(gè)、退出。

在Status

Bar上單擊鼠標(biāo)右鍵,選擇“屬性”,從彈出的窗口中選擇“窗格”頁(yè)面,用鼠標(biāo)點(diǎn)擊“插入窗格”5次,在索引1-5中分別設(shè)置“文本”屬性為:“共打開了0個(gè)文件”、“狀態(tài):”、“等待”、“幀數(shù):”、“0”,再適當(dāng)設(shè)置每一項(xiàng)的“最小寬度”的屬性(可參考圖1中的比例)。

進(jìn)入菜單編輯器(按快捷鍵Ctrl+E)。設(shè)置第一個(gè)菜單標(biāo)題為“顯示控制”,名稱為:mnuDisplay;在“顯示控制”下設(shè)立子菜單標(biāo)題分別為“全部顯示”、“隨窗口大小變化”、“縮放至窗口大小”,名稱分別為:mnuDisplay0、mnuDisplay1、mnuDisplay2。設(shè)置第二個(gè)菜單標(biāo)題為“質(zhì)量控制”,名稱為:mnuQuality;在“質(zhì)量控制”下設(shè)立子菜單標(biāo)題分別為“低分辨率”、“高分辨率”,名稱分別為:mnuQuality0、mnuQuality1。設(shè)置第三個(gè)菜單標(biāo)題為“播放控制”,名稱為:mnuPlayControl;在“播放控制”下設(shè)立子菜單標(biāo)題分別為“循環(huán)播放”、“放大畫面”、“縮小畫面”,名稱分別為:mnuLoopPlay、mnuZoomIn、mnuZoomOut。

Form2!ShockwaveFlash1.Stop

End

Sub

Private

Sub

cmdPre_Click()

’播放上一個(gè)文件

If

TotalFile

<>

1

Then

’當(dāng)用戶打開多于一個(gè)文件時(shí)

PlayFileNum

=

PlayFileNum

1

If

PlayFileNum

<

1

Then

PlayFileNum

=

TotalFile

Form2!ShockwaveFlash1.Movie

=

FileNames(0)

″\″

FileNames(PlayFileNum)

End

If

’顯示播放狀態(tài)的信息。

StatusBar1.Panels(3).Text

=

″正在播放文件:″

FileNames(PlayFileNum)

...″

Slider1.Max

=

Form2!ShockwaveFlash1.TotalFrames

Form2.Caption

=

FileNames(PlayFileNum)

Flash動(dòng)畫播放器″

Label2.Caption

=

Str(Slider1.Max

/

2)

″幀″

Label3.Caption

=

Str(Slider1.Max)

″幀″

End

Sub

Private

Sub

cmdNext_Click()

’播放下一個(gè)文件

If

TotalFile

<>

1

Then

’用戶打開多于一個(gè)文件時(shí)

PlayFileNum

=

PlayFileNum

1

If

PlayFileNum>TotalFile

Then

PlayFileNum

=

1

Form2!ShockwaveFlash1.Movie

=

FileNames(0)

″\″

FileNames(PlayFileNum)

End

If

’顯示播放狀態(tài)的信息。

StatusBar1.Panels(3).Text

=

″正在播放文件:″

FileNames(PlayFileNum)

...″

Slider1.Max

=

Form2!ShockwaveFlash1.TotalFrames

Form2.Caption

=

FileNames(PlayFileNum)

Flash動(dòng)畫播放器″

Label2.Caption

=

Str(Slider1.Max

/

2)

″幀″

Label3.Caption

=

Str(Slider1.Max)

″幀″

End

Sub

Private

Sub

cmdPreFrame_Click()

’跳到動(dòng)畫的上一幀

Form2!ShockwaveFlash1.Back

End

Sub

Private

Sub

cmdNextFrame_Click()

’跳到動(dòng)畫的下一幀

Form2!ShockwaveFlash1.Forward

End

Sub

Private

Sub

cmdExit_Click()

’退出程序

End

End

Sub

Private

Sub

Slider1_Scroll()

’當(dāng)用戶拖動(dòng)滑動(dòng)條時(shí),將播放幀數(shù)設(shè)置為滑動(dòng)條中的值。

Form2!ShockwaveFlash1.FrameNum

=

Slider1.Value

End

Sub

Private

Sub

mnuDisplay0_Click()

’將畫面大小設(shè)置為在控件內(nèi)保持動(dòng)畫原來比例全部顯示

Form2!ShockwaveFlash1.ScaleMode

=

0

mnuDisplay0.Checked

=

True

mnuDisplay1.Checked

=

False

mnuDisplay2.Checked

=

False

End

Sub

Private

Sub

mnuDisplay1_Click()

’將畫面的縮放設(shè)置為隨控件橫向(或縱向)的縮放而變化

Form2!ShockwaveFlash1.ScaleMode

=

1

mnuDisplay0.Checked

=

False

mnuDisplay1.Checked

=

True

mnuDisplay2.Checked

=

False

End

Sub

Private

Sub

mnuDisplay2_Click()

’將畫面大小設(shè)置為不理會(huì)動(dòng)畫原來比例縮放至控件大小

Form2!ShockwaveFlash1.ScaleMode

=

2

mnuDisplay0.Checked

=

False

mnuDisplay1.Checked

=

False

mnuDisplay2.Checked

=

True

End

Sub

Private

Sub

mnuLoopPlay_Click()

’將播放方式設(shè)置為循環(huán)或不循環(huán)。

mnuLoopPlay.Checked

=

Not

mnuLoopPlay.Checked

Form2!ShockwaveFlash1.Loop

=

Not

Form2!ShockwaveFlash1.Loop

End

Sub

Private

Sub

mnuQuality0_Click()

’將畫面質(zhì)量設(shè)置為低分辨率

Form2!ShockwaveFlash1.Quality

=

0

mnuQuality0.Checked

我的flash控件不能嵌入屏幕保護(hù)程序

我用scrnsave.lib

編一個(gè)flash屏幕保護(hù)程序

用了Shockwave

Flash

Object控件

加入工程是CShockwaveFlash類,

我在CMyScreenSaver中聲明了

CShockwaveFlash

m_flash;

又在CMyScreenSaver::OnCreate(...)中調(diào)用

m_flash.Create(...)

現(xiàn)有兩種方案:

第一種方案:

采用App方式,將屏保做成應(yīng)用程序,

在theApp->Instance()中

設(shè)置是啟動(dòng)屏幕保護(hù)程序

還是啟動(dòng)設(shè)置對(duì)話框。

我在theApp->Instance()中調(diào)用

::AfxEnableControlContainer();

程序運(yùn)行正常

第二種方案:

采用

ScreenSaverConfigureDialog(..)

ScreenSaverProc(..)

Regist

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論