如何在DELPHI中顯示FLASH
在Flash大行其道的今天,是否想過在你的程序裏也加入幾幅Flash動畫炫一炫呢?OK,心動不如行動,讓我們現在就開始吧!
首先,你的機器裏要裝有Flash播放軟件(你的IE能顯示Flash)。IE之所以能顯示Flash是安裝了由Macromedia公司提供的swflash.ocx控件,我們可以在Win98的$WindowsSystemMacromed Flash中或在Win2000中的$WinntSystem32 MacromedFlash中找到它。ActiveX控件在Windows裏是通用的,Delphi也同樣支持。
運行Delphi後,選擇選單Component→Import ActiveX Control,找到SWFlash.OCX 文件進行安裝。安裝完成後,ActiveX麵板裏出現TShockwaveFlash控件,這是Delphi對SWFlash.OCX的封裝,現在我們就可以用這個控件來播放Flash了。拖一個Flash過來,放在Form上,指定其Movie屬性為d:test.SWF,並按F9鍵加以運行即可。怎麽樣,運行效果不錯吧?下麵,筆者將具體介紹TShockwaveFlash主要屬性、方法和事件,以便於讀者開發。
TShockwaveFlash主要屬性如下:
ReadyState:讀一個flash文件時的狀態,其中包括0=Loading、1=Uninitialized、2=Loaded、3=Interactive和4=Complete;
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為按窗口百分比。
TShockwaveFlash主要事件如下:
OnProgress(int percent):讀取一個flash時觸發;
OnReadyStateChange(int state):狀態改變時觸發。states的值可以為0=Loading、1=Uninitialized、2=Loaded、3=Interactive和4=Complete。
怎樣將透明flash插入網頁中 三個方法: (1) "透明FLASH地址" width=900 height=535 type=application/x-shockwave-flash wmode="transparent" quality="high"> (網絡) (2)
bgproperties="fixed">你貼子的內容 (文學) (3) http://vip.cn/client/fuyongjianpp/ 20051231134637243.SWF" width="500" height="100" type="application/x-shockwave- flash" quality="high" wmode="transparent" /> (青衣) 怎樣將透明flash插入網頁中? (一)首先教大家最簡單的插入Flash的代碼,透明,無坐標控製:
注意wmode="transparent"是控製Flash是否透明顯示的,如果不想讓它顯示為透明的,直接把wmode="transparent"去掉即可。
http://www.macromedia.com/go/getflashplayer src=
http://imgfree.21cn.com/free/flash/17.swf width=500 height=360 type=application/x-shockwave-flash quality="high" wmode="transparent">
(二)再教教大家加入絕對坐標的透明Flash,絕對坐標意味著不管你的窗口拉多大,那個Flash依然乖乖地在原地不動:
http://user.hjenglish.com/yangbb/pics/snow.swf width=500 height=2000 type=application/octet-stream ;; quality="high" wmode="transparent">
效果見下麵的帖子:
http://www.hjbbs.com/dispbbs.asp?boardID=43&ID=193239 (三)最後教教大家如何加入相對坐標的透明Flash,注意下麵代碼的table部分,這主要是使用表格作為容器,把Flash"裝"到表格裏,這樣不管瀏覽者把瀏覽器拉多大,Flash永遠和表格一起動。而且,表格可以設置背景圖片,表格上麵再放一個透明Flash與背景圖片相配合,哇塞,效果好得不得了!~
http://image.hjbbs.com/img/200410/200410259222581234.jpg border=0>
怎樣把透明的FLASH效果覆蓋在圖片上?
FLASH的背景透明主要功能不是靠FLASH本身來實現的,而是FLASH的播放器:)在網頁中找到你插入FLASH的那部分的代碼,你會看到類似以下內容:
http://download.macromedia.com/pub/shockwave/cabs/flashlash.cab#version=6,0,29,0" width="770" height="30"> http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="770" height="30"> 其他部分我們不必在意,因為是網頁編輯軟件自動生成的。我們要注意的是
這部分,這部分設置了FLASH播放齊的一些參數,其中第一句設置FLASH播放文件的路徑,第二幀設置了影片的播放品質(高)。我們在這裏自己再寫進去一句:
此句將控製FLASH在頁麵中無背景(透明)。當然,如果你在FLASH的最後一層放了不透明的東西那這個自然不能實現了:)
========================================================
打開 Dreamweaver MX 2004 軟件新建頁麵,然後在頁麵中插入表格,並在表格裏插入 Flash 文件,設置 Flash 文件的參數,製作透明背景的 Flash 。
操作步驟:
( 1 )打開 Dreamweaver MX 2004 軟件新建文件,並保存頁麵。
( 2 )插入表格和設置背景。為使 Flash 的效果更加明顯,先插入表格並設置背景圖,如下圖所示。
提示:可使用快捷鍵 Ctrl+Alt+7 打開【表格】對話框。
設置表格的背景,把表格選中,然後按下圖進行設置,(提示:最好事先準備的圖片和Flash的大小是相同的啊!)
( 3 )設置完背景後,可以插入 Flash 文件,如下圖所示。
( 4 )接著設置 Flash 文件的參數,如下圖所示。
如果你想了解更多在Flash的參數,可以瀏覽下麵的的文章:
Dreamweaver插入Flash參數
( 5 )保存文件,完成操作。在網絡上看到自己喜歡的 Flash 作品,想把它引用到自己的網站,但又不喜歡底色,就可以用本例介紹的這種方法,使它透明後再使用。
多給點分啦!!!!!!!!!!!!!!!!!!!!!!!
參考資料:
http://www.verystu.com/article/40/Article_6186_1.shtml
怎樣製作Flash
Flash影像是專為網絡而創建的互動的二維矢量圖形和動畫。網絡設計者可以使用Flash創建導航控製欄、動態標誌、帶有同步音頻的動畫、甚至完整的視覺豐富的網站。由於Flash影像屬於緊湊的矢量圖形,所以下載迅速,並且能夠縮放,滿足瀏覽者的屏幕尺寸。在使用Flash進行創作的時候,可以通過自己繪製或者輸入作品來創建影像,在場景(場景就是用來將各個獨立的幀合成到影像中,直接進行繪畫,或者對輸入作品進行安排的地方)上對其進行安排,利用時間軸進行動態控製。和電影一樣,Flash影像也根據時間的長短分成若幹幀。還可以通過令其對事件做出反應而產生互動,或按照指定方法變化。在影像完成之後,可以將其作為Flash影像輸出,或嵌入HTML網頁中,將影像連同網頁一起上傳到網絡服務器上。
3.1.2 Flash時間軸、幀和圖層
時間軸用來組織和控製影像不同時間不同圖層和幀的內容。時間軸最重要的成分是幀、圖層和播放頭。時間軸窗口是進行動畫播放速度調整和將作品放置到不同圖層的地方,時間軸顯示影像中的每一幀。
動畫的創建是通過改變後續幀的內容來實現的。可以製作一個橫跨場景的移動的對象,增加或減小對象大小,旋轉,改變顏色,淡入淡出,或者改變形狀等。所有的變化都可以單獨發生也可以同其他變化一起發生。
在Flash影像中每個場景都包含有多少不等的圖層。在製作動畫的時候,圖層的作用主要是組織序列動畫的各個部分,分離動畫對象,使其相互之間不致發生擦塗、連接、或者分割。如果希望Flash每次內插移動多個集合或符號,則每個集合或符號都必須處在單獨的圖層裏。我們就是利用圖層的特殊作用,製作了"電視機畫中畫"的演示動畫:背景圖層是一幅靜態的電視機圖像,而第二個圖層中則包含有獨立的動畫對象,製作出在電視機四個角移動的"畫中畫"效果。下麵舉一例說明如何使用時間軸、幀和圖層來製作動畫。
逐行倒相對相位失真的互補動畫的製作步驟:
(1) 作坐標軸,在不同層上畫出代表n行信號的矢量Fn、(n+1)行信號的矢量Fn+1(用藍色線段表示),標上角度,如圖1(a)中隻有Fn、Fn+1矢量的情況;
(2) 選取矢量Fn,選擇插入→轉化為符號→圖形,將其轉化成圖形;同樣轉化Fn+1成圖形;
(3) 在矢量Fn所在幀後插入一關鍵幀,可以看到插入後實際上是複製了前麵的幀,在這裏用於表示有相移n行矢量Fn′,將Fn′旋轉一定的角度;
(4)雙擊前麵的幀,彈出幀屬性麵板,在"過渡效果"中選擇"運動",拉開兩幀相隔的距離,這時可以看到中間有一條藍色的實線。用鼠標拖動時間線,看到相隔的距離越大,旋轉的速度越慢,可以根據要求調整。同樣製作Fn+1順時針偏移成有相移的(n+1)行矢量Fn+1′,如圖1(b);
(5) 新建一層,Fn+1′為開始幀,按步驟3-4作出Fn+1′倒相過程,生成Fn+1′倒相回來的矢量Fn+1′′,如圖1(b)中Fn、Fn+1、Fn′、Fn+1′、Fn+1′′的情況;
(6) 然後將Fn′與Fn+1′′複製到新建層中,按合成法則畫出Fn′與Fn+1′′的合成矢量F合,如圖1(b);
(7) 最後,錯開各階段動畫時間。
3.1.3 Flash序列動畫
Flash中製作序列動畫的方法有兩種:一幀接一幀連續變化的逐幀變化動畫和內插動畫。在逐幀變化動畫中要製作每一幀的圖像;在內插動畫中,隻需製作開始和結束幀的圖像,中間過渡幀由Flash自動創建。逐幀變化動畫對文件尺寸的增加遠超過內插動畫,因此我們較常使用內插動畫。
內插動畫對於創作運動和變形是一種非常有效的方法,同時又保持文件尺寸最小。不象逐幀變化動畫那樣,對於內插動畫,Flash隻需保存引起幀發生變化的值, 而不是整個幀。Flash可以製作兩種類型的內插動畫。第一種, 稱之為運動內插(motiontweening),這種動畫是先在一點定義實體、集合或者文本塊的屬性,如位置、大小、旋轉,然後在另一點改變這些屬性。第二種,稱之為變形內插(shapetweening),先在一點繪製一個圖形,然後在另一點改變這個圖形或者繪製另外一個圖形,Flash會在中間的幀中賦予新的值或者圖形,由此創作出動畫。在《電》課件中,許多演示電流、信號流向的動畫就是根據這兩種內插動畫製作的。下麵舉例說明。
行輸出電路充放電過程動畫的製作:
(1) 在Flash中畫好波形坐標軸;
(2) 用綠色線條分別畫出不同階段的充放電波形圖,如圖2(a)所示;
(3) 標上各時間段的t值;
(4) 製作閃爍效果來突出充放電的時間間隔,可以新建數層,按波形畫上相吻合的紅色波形,這樣就形成一幀對象,在後一幀插入空白幀,然後複製有紅色波形的那一幀,在空白幀後麵拷貝該幀,至此就完成了一部分的波形閃爍效果;
(5) 同理製作各波段的閃爍效果;
(6) 在完成波形圖後,開始製作電路充放電示意圖。畫好各對應的電路圖,如圖2(b);
(7) 在相應的電路中,用紅色線條表示電流流向。
3.1.4 Flash高級設計
Flash有一個特殊的圖層——運動導向層。運動導向層允許繪製路徑,內插實體、集合或字塊沿著這個路徑進行動態變化。可以將多個圖層鏈向同一個運動導向層,讓多個對象沿同一路徑運動。利用運動導向層,可以製作出沿著特定路線運動的動畫。
互動影像在製作精彩的Flash動畫時必不可少,它可以令學習者參與其中。通過使用鍵盤、鼠標,或者兩者兼用,學習者可以跳到影像的不同部分,移動對象,輸入表格信息,或者執行其它互動操作。互動影像是通過設置actions來實現的。所謂的action就是一套在特定事件發生時執行的指令。所謂能夠觸發action的事件就是當影像播放到了某一幀,或者當用戶點擊了按鈕,或者按動鍵盤上某些鍵的行為,這些都稱之為事件(event)。運用actions需要有一些編程經驗。通過actions,可以製作出隨停隨放的動畫效果。在按鈕中加如控製信號動畫播放的actions指令,在信號流經某一元件時可以停止動畫的播放,使學習者能夠隨時在動畫和文字講解之間靈活切換。
3.2 Flash動畫的輸出
當使用Flash製作網絡課件動畫時,往往還需要一些其他的文件。如果要想在瀏覽器中打開Flash影像,必須要先打開一個HTML文檔,而這個文檔反過來啟動FlashPlayer並播放影像。除了這個HTML文檔外,還可以創建一個Flash影像的GIF動畫版本,JPEG或GIF圖像,以便沒有安裝FlashPlayer時顯示。
Flash影像的主要文件格式是.swf。這是唯一支持Flash交互功能的文件格式。播放Flash影像有以下幾種方法:1、在裝有FlashPlayer的Netscape和Internet Explorer瀏覽器上播放。2、在帶有FlashXtra的Director和Authorware上播放。3、在裝有Flash Active X控製器的MicrosoftOffice和其他帶有Active X的主機上播放。4、作為QuickTime影像的一部分播放。5、製作成被叫做放映機的獨立的播放程序來播放。
.swf 是一種開放式的標準,可以被其他程序支持。除了 swf 格式外,還可以以各種不同格式由Flash輸出影像和靜止圖像,包括 GIF,JPEG,PNG,BMP,QuickTime或 AVI。
4、把各種技術融合到網絡多媒體課件動畫製作中
4.1 PhotoShop圖像處理
利用Flash的繪畫功能,可以方便的製作電路圖和畫出信號流向。但是,由於Flash軟件中,層沒有疊加模式,很難將如三基色原理的相加混色之類的過程表示清楚。而圖像處理軟件PhotoShop就能解決這個問題。
photoShop是專業級的圖像處理軟件,能夠繪製圖形,優化圖片。但是PhotoShop不能做出連續動畫效果,所以我們決定將相加混色過程用PhotoShop做成幾幅關鍵幀圖像,再導入Flash中,合成比較連續的動畫。
例如在製作"紅光加綠光"的相加混色動畫時,便是運用了PhotoShop圖像處理和Flash的動畫製作。其具體步驟是:
(1) 打開PhotoShop,在兩層各畫一個互不相交的圓,分別填充為紅和綠色,如圖3(a);
(2) 將上麵一層的模式改為屏幕模式;
(3) 縮短兩個圓的距離(為使動畫連續,可做多幾個關鍵幀),存盤;
(4) 如圖3(b)所示,兩圓相交時,由於兩層的疊加模式為屏幕模式,故能產生相加混色效果。繼續縮短兩個圓的距離,做多幾個關鍵幀,依次存盤;
(5) 打開Flash,導入剛才存盤的圖片;
(6) 做一個按鈕來控製動畫,可選擇:插入→符號→按鈕;
(7) 回到場景,另開一層,將按鈕拖曳到合適位置,單擊右鍵,設置按鈕屬性,在動作屬性中選擇goto,目標幀設為兩色光疊加的開始幀;同時在兩色光疊加的結束幀添加stop動作;
(8) 同理,分別製作"紅光加藍光"、 "藍光加綠光"的混色過程,注意將各疊加過程的幀位置錯開,以便分別呈現混色過程。
4.2 Adobe Premiere 視頻編輯軟件
Adobe Premiere是一個功能強大的非線性視、音頻編輯係統,AdobePremiere支持多種格式的文件。對於視頻動畫文件,它支持.avi、.mov、.film和.flc、.fli,並且支持.tga和.gif等文件。對於靜止圖象,它支持.psd、.bmp、.pic、.tif等格式。對於音頻文件,它支持.wav和.aif等格式,因此可以和許多也支持這些格式的軟件配合使用。
Adobe Premiere軟件在視、音頻處理卡的支持下,具有如下功能:對來自視、音頻設備輸出的動態模擬信號進行數字化處理,視、音頻媒體的非線性編輯,可以配音或疊加文字和圖像,對剪輯實現特技效果處理以及完成視頻壓縮等。
AdobePremiere提供各種精確的視頻編輯工具,能產生廣播級的視頻文件。在製作網絡多媒體課件時,我們經常要運用一些視頻來演示教學內容,或者將一些靜止圖象製作成連續活動的動畫。這時雖然也可以用Flash來製作,但製作過程複雜,要花費很長的時間,而且製作出來的動畫效果並不流暢。用AdobePremiere能夠把龐大的視頻文件截取若幹幀圖象,再用Flash處理,得到令人滿意的動畫效果。 AdobePremiere的視頻處理功能非常強大。在製作《電》課件時,我們需要使用一些視頻素材,但是現有的視頻素材很大,如果插入到網頁中,受網絡傳輸速度的影響,載入時間很長,故不適合網絡多媒體課件。這時,用AdobePremiere對視頻進行處理,去除多餘的幀,提供壓縮比率,在不影響教學要求下,能夠大大減少視頻文件的大小,使之適合網頁製作。
Adobe Premiere的截圖功能為我們製作《電》課件提供了更多的原始素材。在製作"電視機掃描"動畫時,就是用Adobe Premiere截取視頻相隔幾幀的圖像,再用Flash進行幀動畫處理。
4.3 掃描儀和數碼相機
製作《電》課件時,我們使用了大量的素材。這些素材有些是用Flash、PhotoShop等繪製出來的,比如電路圖、方框圖。但是,有時候我們要用到實物的圖片或者較為複雜的圖像,就不能用人工繪製了,而且花費時間。掃描儀和數碼相機能為我們很方便的提供這些素材。如,在製作攝像管工作原理時,我們需要用一個動畫說明攝像管的工作原理,而攝像管的結構圖很複雜,不容易繪製。我們就用掃描儀將現成的圖片掃描進電腦,再用Flash做成動畫來表示電子束和電流的流向。而在製作"畫中畫"動畫時所用的電視機畫麵也是用數碼相機拍攝後,再用Flash處理的。
因此,在製作課件時要充分利用現有的技術和設備,提高工作效率。尤其是在收集素材方麵,能夠方便地得到大量逼真的素材,使製作的課件更具說服力和表現力。
5、結束語
不管采用何種工具開發網絡多媒體課件動畫,都必須以最形象,最直接和最準確的方式展示教學內容。在製作時,製作者首先要對用動畫展示的教學內容有深刻的理解,對動畫的演示過程有清晰的思路。設計動畫流程時,要選擇合適的軟件工具,尤其要注意多種軟件工具的綜合利用,取長補短。這樣,才能夠製作出生動的教學演示動畫,充分發揮網絡多媒體課件的優勢,提高教學效果。
參考文獻:
[1] 杜興 Flash 4.0動畫網頁大製作 中國石化出版社 1999年
[2] 溫謙 溫顏 Flash 4.0實例教程 電子工業出版社 2000年 [3] 桑新民 張倩葦 步入信息時代的學習理論與實踐 中央廣播電視大學出版社 2000年
[4] 李林和 電視機原理與技術 西安電子科技大學出版社 1994年