整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          關(guān)于PPT中的視頻與交互觸發(fā)效果,這些知識冷門卻實(shí)用


          周末,我給大家分享了 100 頁矢量視頻邊框素材,你遇見了么?


          • PPT默認(rèn)的視頻樣式太丑?我為你準(zhǔn)備了100頁好看的視頻邊框!


          關(guān)于 PPT 中插入視頻,在我初學(xué) PPT 的時候,把我折騰得夠嗆,經(jīng)常會遇到各種兼容或使用上的問題。


          要么是視頻插入不了,要么是自己電腦上播放正常,換臺電腦視頻就放不了。


          有時候設(shè)置動畫也一樣窩火,要么不會自動播放,要么就只出現(xiàn)視頻,圖文內(nèi)容全都看不見。


          不知道你有沒有遇到過這些情況?


          反正我做了這么多年 PPT,搞定過超多神奇的設(shè)計需求,算是把視頻相關(guān)的坑都踩了一遍。


          今天,我就給大家分享一些,有關(guān) PPT 中插入視頻的小知識,連大神用了都說好!



          01. PPT 中插入視頻,如何在其他電腦也能正常播放?


          這個問題,幾乎每年都會被一些朋友問到,不過隨著軟件版本的升級,問的人倒是越來越少了。


          PowerPoint 從 2010 版開始,視頻支持直接嵌入到 PPT 中,直接把視頻文件拖進(jìn) PPT 就自動嵌入了。


          這時候要把 PPT 放到其他電腦上,如果這臺電腦也是 2010 及以上版本,或者是新版 WPS,通常視頻都能正常播放。


          如果這臺電腦是更低的 03 或 07 版,那么就算視頻嵌入了,也無法正常播放。


          此外,2010 版與 2013以上版本,對視頻格式的兼容也有所不同。


          有時候會出現(xiàn)插入的 mp4 格式的視頻,在 WPS 或其他版本的電腦上播放不了。


          為了解決這個問題,可以使用格式工廠之類的轉(zhuǎn)換工具,將 mp4 格式的視頻轉(zhuǎn)換為 wmv 格式,相對來說視頻的兼容性更好些。


          如果你現(xiàn)在用的是 2003 或 2007 版,視頻插入進(jìn)去后,在自己電腦上是可以播放的。


          但是需要注意,低版本插入視頻,文件是通過鏈接的形式存在的,視頻并沒有嵌入到 .ppt 文件中。


          而這種鏈接形式的視頻插入,又分為兩種情況,即文件地址的相對路徑,以及文件地址的絕對路徑。


          在相對路徑的情況下,只要把 .ppt 文件和視頻文件所在的文件夾,一起拷貝到其他電腦,那么 PPT 中的視頻就能正常播放。


          而如果插入視頻的時候用的是絕對路徑,即使把文件夾拷貝過去,也無法正常播放,需要在拷貝后的電腦上重新插入一遍。


          不過呢,如果你打算用 07 之類的低版本,還要保證其他電腦能正常播放,其實(shí)也不用去管是啥路徑,估計你也看懵了。


          只要做好 PPT 并把視頻插入進(jìn)去,然后點(diǎn)擊文件-導(dǎo)出,選擇打包成 CD



          把用到的 PPT 和音視頻文件都選中,最后選擇復(fù)制到某個文件夾即可。


          這時候,PPT 及里面用到的音視頻文件,就都在該文件夾里了,而且鏈接的路徑都是正確的。


          使用的時候,只需要把該文件夾拷貝到其他電腦上,視頻就可以正常播放了。


          最后,如果看完這些,你還是不會操作,可以找萬能的某寶,花點(diǎn)小錢找個 PPT 設(shè)計師幫你搞定。


          02. 為啥我的 PPT 插入不了視頻?


          怎么讓視頻在其他電腦播放,這個倒是學(xué)會了,關(guān)鍵是我連視頻都插入不進(jìn)去,這可咋辦啊?


          聽起來很神奇對不對,但確實(shí)有不少人遇到過這個問題,包括我自己。


          這個問題,又要分好幾種情況:


          第一種情況,插入的 avi 等 PowerPoint 能支持的格式,但 WPS 可能用不了。


          這個前面介紹過了,為了保證兼容性,最好把視頻文件轉(zhuǎn)換為 mp4 或 wmv 格式。


          第二種情況,下載的視頻本身就是 mp4 格式,為啥沒法插入到 PPT 中,或者提示需要升級轉(zhuǎn)碼?


          這是因?yàn)榧词雇瑯邮?mp4 文件,也存在不同的編碼格式。


          要么你使用的 mp4 文件編碼格式不被支持,要么你的電腦上缺少對應(yīng)的解碼工具,所以視頻無法正常插入與播放。


          第三種情況,我從愛奇藝或騰訊視頻下載的 QSV 或 QLV 格式,為什么無法插入到 PPT 中。


          不同版本 PowerPoint 所支持的視頻格式是不同的,而且有格式限制,這些網(wǎng)絡(luò)平臺下載的視頻格式,往往需要特定的解碼工具才能播放。


          可以在網(wǎng)上搜索對應(yīng)的視頻格式轉(zhuǎn)換或下載工具,將這些特殊格式的視頻轉(zhuǎn)換為 mp4 或 wmv 格式,再插入到 PPT 中使用。


          網(wǎng)址:https://www.aboutppt.com/sites/8746.html


          第四種情況,為什么我?guī)в?alpha 通道的 mov 格式的視頻,插入 PPT 后背景不是透明的。


          這個問題我曾經(jīng)糾結(jié)過很久,當(dāng)時網(wǎng)上有教程說可以插入透明背景的視頻,但我一直沒有復(fù)現(xiàn)出來。


          直到今年 @墨鮮聲 在群里提到,我才知道實(shí)現(xiàn)的條件極為苛刻,以下信息僅供大家參考:


          需要 win7 32 位系統(tǒng),32 位 OFFICE 2010 版本,更高版本的 office 不支持 alpha 通道。


          可能還需要 K-Lite 解碼器,而非網(wǎng)上說的安裝 QuickTime 就能使用。


          第五種情況,PPT 插入的在線視頻突然無法播放。


          這又要細(xì)分幾種不同的情境了,有可能你插入的在線視頻鏈接失效,導(dǎo)致視頻無法正常播放。


          也有可能你插入的是聯(lián)機(jī)視頻,即 Youtube 上面的視頻,換電腦后網(wǎng)絡(luò)環(huán)境不一樣,無法鏈接到 YouTube 導(dǎo)致視頻無法播放。


          還有可能你插入的播放控件有兼容性問題,換電腦后不支持該播放控件,所以在線視頻無法正常播放。


          亦或者,這是早期插入的 flash 文件,flash 鏈接了一個在線視頻地址,該視頻地址已經(jīng)失效,導(dǎo)致 flash 中的視頻無法播放。


          最后,目前主流工作環(huán)境已經(jīng)拋棄了 flash,很可能你的電腦上沒安裝 flash 播放器,導(dǎo)致以前插入的 swf 視頻無法播放。


          03. 有關(guān) PPT 中的視頻,其他你聽過和沒聽過的疑難雜癥!


          視頻設(shè)置為背景循環(huán)播放的時候,為什么看不到其他圖文內(nèi)容?


          這是因?yàn)槟阍谠O(shè)置視頻自動播放時,把“全屏播放”這個選項給勾上了,導(dǎo)致視頻播放時蓋住了其他圖文內(nèi)容。



          只需要把“全屏播放”給取消勾選,就能看到視頻上層的圖文效果了。


          視頻播放的時候,鼠標(biāo)移動過去,在視頻底部總有個很難看的進(jìn)度條該怎么辦?



          如果你不需要在演示的時候顯示該進(jìn)度條,可以在上方繪制一個透明度為 100% 的矩形,只要該矩形將視頻完全蓋住即可。



          這樣當(dāng)鼠標(biāo)移動上去的時候,鼠標(biāo)的懸浮等指令就會被該矩形給遮住,就無法觸發(fā)視頻顯示進(jìn)度條了。


          不會視頻剪輯軟件,可以用 PPT 剪輯視頻么?


          如果你的耐心足夠,是可以使用 PPT 的“裁剪視頻”功能來剪輯視頻的。



          不過,為了自己的頭發(fā)著想,建議還是用專業(yè)的視頻剪輯工具。


          插入視頻后,感覺視頻的封面(縮略圖)有點(diǎn)丑,可以換其他圖片么?


          可以選中視頻后,在“海報框架”選項中,替換該視頻的封面圖:



          通常,換視頻封面圖,除了可以讓視頻看起來更有吸引力,還可以用來“掛羊頭賣狗肉”,或者保持神秘感。


          PPT 中的視頻可以使用外掛字幕么?


          可以,高版本 PowerPoint 支持給視頻添加字幕文件,目前僅支持 VTT 格式的字幕,可以在“插入題注”中選擇對應(yīng)的字幕文件。



          插入完成后,在視頻的右下角會出現(xiàn)對應(yīng)的字幕選項,可以從多個字幕中選擇一個使用,也可以關(guān)閉字幕。


          聽說 PPT 自帶的庫存視頻不錯,為什么我這沒有,或者打開的時候報錯?


          庫存視頻功能,需要高版本 PowerPoint 才能使用,如果你的插入選項卡-視頻選項中沒有“庫存視頻”這個選項,說明你的軟件版本不支持。


          確實(shí)需要使用的話,可以試試 365 或 2016 mondo 版本。


          如果你的界面上有“庫存視頻”這個選項,但是打開后報錯,像下面這樣:



          一般有兩個方面的原因,要么是電腦區(qū)域設(shè)置的問題,要么是瀏覽器選項設(shè)置的問題。


          首先,在開始菜單搜索“區(qū)域設(shè)置”



          打開后,將國家或地區(qū)改為美國,一般改成其他國家也可以,貌似微軟就只限制了中國區(qū)的使用。



          修改了地區(qū)之后,如果還是無法打開庫存視頻,接著在開始菜單搜索“Internet選項”



          打開后,點(diǎn)擊“高級”,把“使用TLS 1.2”勾選上,點(diǎn)擊右下角的“應(yīng)用”



          操作完成后,刷新一下庫存視頻窗口,就可以正常顯示所有視頻了:



          如果你無法正常插入 3D 模型、聯(lián)機(jī)圖片或者在線圖標(biāo),解決步驟也一樣。


          04. PPT 視頻與交互的特殊用法


          本來寫到上面第 3 節(jié),今天的知識點(diǎn)就已經(jīng)非常多了,可以火速收工。


          但鑒于上周分享視頻邊框的時候,有些小伙伴提到交互的用法,接下來我就再分享一些知識點(diǎn)吧。


          下面的屬于進(jìn)階內(nèi)容,我點(diǎn)到為止,更深入的玩法還得你自己去上手試試,這樣才能掌握精髓。


          首先,上周的視頻邊框,可以直接把視頻拖進(jìn)去,置于底層,然后調(diào)整上方色塊的透明度。



          把整體變成一個視頻封面,讓人一看就知道這里是一個視頻,能夠點(diǎn)擊播放。


          這種設(shè)計思路,在課堂或展會等觸摸屏設(shè)備中,非常直觀好用。


          接著給視頻添加點(diǎn)擊觸發(fā)效果,將觸發(fā)器設(shè)置為上方的視頻邊框:



          同時為視頻邊框添加觸發(fā)消失動畫,與上一動畫同時開始:



          點(diǎn)擊視頻邊框中的播放按鈕后,視頻會開始播放,而視頻邊框則會自動消失。


          如果你還想保留底部的進(jìn)度條,使其移動的速度與視頻一致,也可以為進(jìn)度條添加伸展動畫,或者使用遮罩來實(shí)現(xiàn)。


          遮罩的使用,以及更多交互觸發(fā)相關(guān)的用法,可以看看下面這篇文章:


          • 我花了870分鐘,做了一份交互型產(chǎn)品介紹PPT


          里面涉及的交互與動畫知識點(diǎn)非常多,應(yīng)該夠你狠學(xué)一會兒了。


          此外,這些視頻邊框除了可以正常覆蓋在視頻上方,還可以與視頻一起三維旋轉(zhuǎn),設(shè)置三維格式。



          想一想,如果再加上平滑切換效果,導(dǎo)出為無背景的 GIF 動圖,重新插入到 PPT 中,會不會非常炫酷呢?


          最后補(bǔ)充一個冷門知識點(diǎn),插入視頻并播放后,可以為其添加書簽效果。



          使用視頻書簽功能,可以讓其他動畫定時自動觸發(fā):



          更冷門的是,觸發(fā)器動畫與常規(guī)動畫效果互不干擾。


          也就是說,以往單擊會強(qiáng)制結(jié)束上一個動畫,現(xiàn)在改成書簽自動觸發(fā),單擊出現(xiàn)下一動畫的同時,上一個動畫也不會受到影響,還能繼續(xù)進(jìn)行。


          可能比較繞口,主要是絕大部分人都碰不到這種需求,等以后啥時候碰到了,回頭再看一眼就都懂了。


          最后,除了視頻有書簽功能,音頻也有類似的功能用法,在播放音頻的時候,動畫選項中會出現(xiàn)一個“搜索”的動畫。


          具體的使用方法,感興趣可以看一下 @Jesse 老師的這篇文章:


          • 新學(xué)期好~和大家聊聊如何制作音樂課件中的圖形譜


          以上,就是今天分享的全部內(nèi)容,希望對大家有所啟發(fā)~

          DESCRIPTION]

          根據(jù)自身需求,客戶有時候需要把某一段數(shù)據(jù)/代碼放在Flash的某個固定地址

          [SOLUTION]

          如果需要把數(shù)據(jù)/代碼放到Flash的固定地址,請參照如下操作步驟:

          1. 首先要判斷Flash上面,是否有足夠的空閑空間存放這段數(shù)據(jù).

          請打開build\project\ckImgsize.log,找到如下資訊:

          [Check VIVA bin size]

          The Boundary of VIVA bin = xxxxx bytes

          Actual VIVA End Address = yyyyy bytes

          其中,Actual VIVA End Address的值表示的是,目前Code區(qū)域?qū)嶋H的大小; The Boundary of VIVA bin是表示

          預(yù)留給Code的區(qū)域大小。實(shí)際值與預(yù)留值之間的差值,就是目前Flash的空閑大小.如果空閑空間足夠,那就可以考慮把

          數(shù)據(jù)放到Flash空閑區(qū)域的某個固定地址.來自半導(dǎo)體社區(qū)

          2. 把數(shù)據(jù)/代碼編譯鏈接生成customer binary 。為了操作簡單,建議把customer bin放在工程中一起編譯鏈接.

          3. 在SV5(如:50/60/76)平臺中,BIN都有一個GFH結(jié)構(gòu),所以為了能讓Flash tool能否識別customer binary ,需

          要給這個BIN添加一個GFH結(jié)構(gòu)。

          [關(guān)于這一點(diǎn)可以參考FAQ07397--------如何添加GFH頭部和利用flash tool下載 ]

          4. 為了讓Flash tool順利的把BIN放到固定地址,還需要對scatfile進(jìn)行修改.

          例如:如果要把數(shù)據(jù)放到0x400000開始的地址;[在這里要注意一點(diǎn),在50/60平臺Flash的起始地址是從0x1000

          0000開始]

          MY_ROM 0x10400000 0x00200000 //這里表示從0x400000開始,范圍為0x200000

          {

          MY_GFH +0x0

          {

          * (MY_GFH, +First)

          }

          MY_ROM_1 +0x0

          {

          mytest.obj (+RO)

          5. 修改scatfile之后,為了防止編譯之后被覆蓋,需要在scatfile文件的注釋部分添加: [MAUI_12345678]

          1、緒論

          1、flash概敘

          2、Flash相關(guān)技術(shù)介紹

          1、什么是flash動畫

          2、ActionScript語言歷史簡談

          1、ActionScript 3

          2、ActionScript 3 的優(yōu)點(diǎn)

          3、XML介紹

          1、XML格式

          3、為什么要在Flash中添加上AS語言呢?

          1、簡單的流星雨

          2、簡單的流星雨(as)

          1、把庫中的元件加載到舞臺上

          2、AS3的事件偵聽機(jī)制

          3、在AS3中改變對象的位置和縮放對象

          4、演示

          3、XML的運(yùn)用

          1、新建FLASH

          2、創(chuàng)建 viewer.as 的類

          3、創(chuàng)建pics,xml 的文件

          4、總結(jié)

          5、致謝

          6、參考文獻(xiàn)

          AS3.0語言在Flash編程中的應(yīng)用

          學(xué)生: 何萬凱

          指導(dǎo)教師: 謝艷萍



          摘 要

          XML是Extensible Markup Language(可擴(kuò)展標(biāo)記語言)的縮寫,是一種表示結(jié)構(gòu)化信息的標(biāo)準(zhǔn)方法,因其簡單、靈活且易于讀取、訪問及處理,尤其因?yàn)樵跀?shù)據(jù)交換和可移植等方面具有優(yōu)勢,已成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。它可以使計算機(jī)方便地操作各類信息,并且人們可以非常方便地編寫和理解這些信息。它讓AS3.0與flash連得更加親密。


          關(guān)鍵詞:結(jié)構(gòu)化信息; 服務(wù)器; 策略文件; 遠(yuǎn)程過程調(diào)用; 信息檢索; 過濾器;


          Flash in the application AS3.0 programming

          language study

          Name: He Wan Kai

          Supervisor: Xie Yan Ping


          Abstract


          XML is Extensible Markup Language(can expand sign language) abbreviate, it is a kind of standard means that represents structured news, because its are simple, agile and read easily take, visit and processing, because exchange and can transplant in data,wait for a respect to have an advantage especially, already became in fact industrial standard. It can make the computer handles of all kinds information conveniently, and people is very OK be written conveniently and understand these message.


          Keywords: Structured information; The server. Strategy file; Remote procedure calls;

          Information retrieval; Filters

          緒論


          FLASH概述

          Flash 由macromedia公司推出的交互式矢量圖和 Web 動畫的標(biāo)準(zhǔn)。網(wǎng)頁設(shè)計者使用 Flash 創(chuàng)作出既漂亮又可改變尺寸的導(dǎo)航界面以及其他奇特的效果。

          flash涉及到的領(lǐng)域:動畫游戲制作,網(wǎng)絡(luò)構(gòu)件,學(xué)習(xí)課件,網(wǎng)站廣告設(shè)計及全flash網(wǎng)站,工控界面等等。主要特點(diǎn)是制作簡單,通用性比較大,涉及的領(lǐng)域多,制作出的東西效果都可以做到非常精致。缺點(diǎn)在于有些效果需要別的軟件輔助制作等等,不是所有效果都能制作出來。(比如些3d效果,flash就很難制作,只能通過導(dǎo)入的方式或者針并針的方式)


            FLASH有三重意義:1) FLASH英文本意為“閃光”;2)它是全球流行的電腦動畫設(shè)計軟件;3)它代表用上述軟件制作的流行于網(wǎng)絡(luò)的動畫作品。Flash是一種交互式矢量多媒體技術(shù),他的前身是Futureplash,早期網(wǎng)上流行的矢量動畫插件。后來由于Macromedia公司收購了Future Splash以后便將其改名為 Flash2,到現(xiàn)在最新的flashcs5。現(xiàn)在網(wǎng)上已經(jīng)有成千上萬個Flash站點(diǎn),著名的如Macromedia專門ShockRave站點(diǎn),全部采用了Shockwave Flash 和Director。可以說Flash已經(jīng)漸漸成為交互式質(zhì)量的標(biāo)準(zhǔn),未來網(wǎng)頁的一大主流。


             Flash 最早期的版本稱為Future Splash Animator,當(dāng)時Future Splash Animator最大的兩個用戶是微軟(Microsoft)和迪斯尼(Disney)。1996年11月,F(xiàn)uture Splash Animator賣給了MM(Macromedia.com),同時改名為Flash1.0 。 Macromedia 公司在1997年6月推出了 Flash 2.0 ,1998年5月推出了Flash3.0。但是這些早期版本的Flash所使用的都是Shockwave 播放器。Flash 進(jìn)入4.0 版以后,原來所使用的 Shockwave 播放器便僅供 Director 使用。Flash 4.0開始有了自己專用的播放器,稱為“Flash Player”,但是為了保持向下相容性,F(xiàn)lash仍然沿用了原有的擴(kuò)展名:.SWF(Shockwave Flash)。 2000年8月Macromedia 推出了Flash5.0 ,它所支持的播放器為 Flash Player 5。

          Flash 5.0中的ActionScript已有了長足的進(jìn)步,并且開始了對XML于Smart Clip(智能影片剪輯)的支持。ActionScript的語法已經(jīng)開始定位為發(fā)展成為一種完整的面向?qū)ο蟮恼Z言,并且遵循ECMAScript的標(biāo)準(zhǔn),就像javascript那樣。2002年3月 Macromedia 推出了Flash MX支持的播放器為 Flash Player 6。Flash 6開始了對外部jpg和MP3調(diào)入的支持,同時也增加了更多的內(nèi)建對象,提供了對HTML文本更精確的控制,并引如SetInterval 超頻幀的概念。同時也改進(jìn)了swf文件的壓縮技術(shù)。之后Macromedia有相繼推出了Flash 8,F(xiàn)lash 9及現(xiàn)在的Flash CS5。相信Flash的軟件以后還會在不斷的更新,還有ActionScript語言也隨著Flash的進(jìn)步而改變,使其更加完美。

          2、Flash相關(guān)技術(shù)介紹

          2.1 什么是Flash動畫

          動畫是將靜止的畫面變?yōu)閯討B(tài)的藝術(shù).實(shí)現(xiàn)由靜止到動態(tài),主要是靠人眼的視覺殘留效應(yīng).利用人的這種視覺生理特性可制作出具有高度想象力和表現(xiàn)力的動畫影片。動畫以人類視覺的原理為基礎(chǔ)。 如果快速查看一系列相關(guān)的靜態(tài)圖像,那么我們會感覺到這是一個連續(xù)的運(yùn)動。 每一個單獨(dú)圖像稱之為幀。幀是動畫電影中的單個圖像。

          動畫片中的動畫一般也稱為"中間畫".這是指兩張原畫的中間過程而言的.動畫片動作的流暢、生動,關(guān)鍵要靠"中間畫"的完善.一般先由原畫設(shè)計者繪制出原畫,然后動畫設(shè)計者根據(jù)原畫規(guī)定的動作要求以及幀數(shù)繪制中間畫.原畫設(shè)計者與動畫設(shè)計者必須有良好的配合才能順利完成動畫片的制作。

          2.2 ActionScript語言歷史簡談

          ActionScript語言最早出現(xiàn)在Flash Player4中,是用來進(jìn)行簡單的交互性腳本,并不是很復(fù)雜。而在Flash5就出現(xiàn)了ActionScript1,他就具備ECMAScript標(biāo)準(zhǔn)語法格式和語義解釋。直到ActionScript2。ActionScript2可以說是ActionScript1的編程包裝版。在ActionScript2中已經(jīng)有良好的類型聲明,還把編譯與運(yùn)行時的異常分離出來。

          雖然ActionScript2對OOP語言遠(yuǎn)遠(yuǎn)談不上全面,但在FLASHMX 時候,已經(jīng)深受廣大的開發(fā)者接受。在2005年,Macromedia引入了flash player 8, 基于ActionScript2中的RIA 開始新的熱潮,并改進(jìn)了外部API之間的flash至游覽器。還可以為復(fù)雜應(yīng)用文件上傳和下載有很大貢獻(xiàn)。Flash Plater 在歷史上是最快被采用。為什么呢?因?yàn)锳ctionScript中有AVM1(ActionScript虛擬機(jī)1),它增強(qiáng)了Flssh Player 8以前的播放功能。

          但是,大型項目接連出現(xiàn),新的需求不斷產(chǎn)生,開發(fā)人員已經(jīng)把AVM1推到極限了。這讓人們停住了腳步。

          經(jīng)過人們長期不斷的努力,F(xiàn)lash Player 迎來了重大的轉(zhuǎn)折點(diǎn)。就是Flash Player 9 首次引入ActionScript3和新的ActionScript引擎 AVM2.。因?yàn)橛辛诉@引擎,ActionScript3代碼執(zhí)行的速度最多可以比原來的ActionScript代碼快10倍。

          還有ActionScript3有一個編譯模型,更加有效的內(nèi)存利用。不過為了考慮到向后兼容,在Flash player 9 中還保留著AVM1,也就是說它有兩個虛擬機(jī)。AVM1 和 AVM2.

          2.2.1 ActionScript 3

          ActionScript 3 是針對Flash Player 運(yùn)行環(huán)境的編程語言,允許向程序添加復(fù)雜的交互。回放控制和數(shù)據(jù)顯示功能。

          2.2.2 ActionScript 3 的優(yōu)點(diǎn)

          這種語言支持類型安全性,使代碼維護(hù)更輕松。

          與其他語言相比,這種語言相當(dāng)簡單,很容易編寫。

          開發(fā)人員可以編寫具有高性能的響應(yīng)性代碼。

          這種語言向后兼容 ActionScript 2 并向前兼容 ECMAScript for XML(E4X)。

          2.3 XML介紹

          XML是Extensible Markup Language(可擴(kuò)展標(biāo)記語言)的縮寫,是一種表示結(jié)構(gòu)化信息的標(biāo)準(zhǔn)方法,因其簡單、靈活且易于讀取、訪問及處理,尤其因?yàn)樵跀?shù)據(jù)交換和可移植等方面具有優(yōu)勢,已成為事實(shí)上的工業(yè)標(biāo)準(zhǔn)。它可以使計算機(jī)方便地操作各類信息,并且人們可以非常方便地編寫和理解這些信息。它讓AS3.0于flash連得更加親密。

          XML在網(wǎng)絡(luò)或者其他領(lǐng)域都被廣泛利用,XML已經(jīng)成為數(shù)據(jù)格式的事實(shí)標(biāo)準(zhǔn)。 有人曾經(jīng)這樣發(fā)問過:“如果放棄ActionScript 2,而選擇了ActionScript 3。”理由是ActionScript 3對XML近乎完美的支持這是絕對的。

          其實(shí)XML是一種類似HTML的標(biāo)記語言,但和HTML關(guān)注方向不一樣。XML是被設(shè)計用來描述數(shù)據(jù)的。而HTML是用來顯示數(shù)據(jù)的。XML是一個跨平臺,于軟件,硬件沒有關(guān)系的,專注于處理信息數(shù)據(jù)描述餓工具。

          2.3.1 XML格式:

          現(xiàn)在我們看看XML的格式,其實(shí)就像寫HTML那樣。

          <?xml version=”1.0” encoding=”UIF-8”?>

          <websites>

          <site>

          <name>HE WAN KAI</name>

          <url>http://baidu.com</url>

          </site>

          <site>

          <name>baidu</name>

          <url>http://baidu.com</url>

          <site>

          </website>


          3、為什么要在Flash中添加上AS語言呢?

          其實(shí),在FLASH 6 就已經(jīng)開始有AS語言了,但隨著時代的進(jìn)步。有一段時間AS語言就到達(dá)了他的極限,經(jīng)過奮斗中的開發(fā)者,不枉他們的心血,AS3從此誕生了。在有ActionScript 3語言加入之后的Flash中,使得更為流暢。

          3.1簡單的流星雨

          先來看看沒有代碼的效果:流星雨

          沒有代碼只有一個一個添加上去,多了就會容易出現(xiàn)錯誤,疲倦。修改的時候也不方便。

          制作步驟:

          先導(dǎo)入底圖,告訴我們現(xiàn)在天黑啦

          流星雨當(dāng)然要有流星啦,現(xiàn)在制作一個流星和星星。

          只要再把元件拖到到舞臺。設(shè)置一個流星滑落的效果就行啦。

          就可以出現(xiàn)前面演示的效果了。大家覺得很簡單吧。那問個問題,如果我做一百個流星呢?難道我拖一百次?就算讓你拖完一百次。別人說還是改50吧,這時候你會崩潰的。


          3.2簡單的流星雨(AS)

          而下面的是加入了ActionScript 3語言的:流星雨AS

          先說說下面的例子重要的知識方面:

          3.2.1 把庫中的元件加載到舞臺上:

          在AS3中,語法就不同在AS2 and AS1了。

          在AS3中,要先定義好一個類,再聲明一個實(shí)例。

          例子:

          var mymc:myl = new myl();

          addChild(mymc);

          mymc.x = 100;

          mymc.y = 100;

          這樣,庫中類名為my1的元件就會顯示在舞臺上坐標(biāo)為(100,100)的位置上。


          3.2.2 AS3的事件偵聽機(jī)制:

          什么是事件呢?當(dāng)某件事情發(fā)生的時候就做些什么事。這個某件事情就是事件。比如:press,當(dāng)鼠標(biāo)按下的時候,這就是一個事件。在AS2中,我們有兩種方式來實(shí)現(xiàn)事件驅(qū)動。一種是將代碼直接寫在元件上(mc或按鈕)。比如,在場景中有一個叫mymc的影片剪輯元件,我們在其上點(diǎn)右鍵,打開動作面板,輸入:

          on(press){

          干點(diǎn)壞事;

          }

          這樣,當(dāng)我們在mymc元件上按下鼠標(biāo)時,就會去干點(diǎn)壞事。第二種方法是在幀動作上輸入代碼:

          mymc.onPress = function(){

          干點(diǎn)壞事;

          }

          這樣,當(dāng)我們在mymc元件上按下鼠標(biāo)時,同樣會去干點(diǎn)壞事。

          接下來,我們在AS3中來看看:在元件上點(diǎn)右鍵,打開動作面板,你會看到“無法將動作應(yīng)用于當(dāng)前所選內(nèi)容”。在AS3中無法將代碼寫在元件上,只能寫在幀動作上。而AS3的事件偵聽,也有它自已,的格式, AS3在事件偵聽格式是:

          function 函數(shù)名稱(事件對象:事件類型):void

          {

          // 此處是為響應(yīng)事件而執(zhí)行的動作。

          }

          觸發(fā)事件的對象.addEventListener(事件類型.事件名稱, 函數(shù)名稱);

          必須先聲明一個函數(shù),將要執(zhí)行的代碼放在其中,然后觸發(fā)事件的對象用addEventListener去偵聽事件,如果事件發(fā)生則調(diào)用函數(shù)。還用上面那個干壞事的例子。打開幀動作面板,輸入:

          mymc.buttonMode=true;

          function bad(event:MouseEvent):void{

          trace("干點(diǎn)壞事;");

          }

          mymc.addEventListener(MouseEvent.CLICK,bad);這樣,當(dāng)我們在mymc元件上按下鼠標(biāo)時,會再一次去干點(diǎn)壞事。上面代碼中的MouseEvent是鼠標(biāo)事件的意思,CLICK是單擊的意思,即在元件上單擊就會觸發(fā)事件。

          3.2.3在AS3中改變對象的位置和縮放對象

          我們知道,對象在舞臺上位置由其x,y軸的坐標(biāo)來決定。在AS2中有兩個屬性:_x,和_y,用來指定對象的x,y坐標(biāo),這一點(diǎn)在AS3中也是一樣的,只是AS3中去掉了下劃線,屬性名就叫x,y.比如,在AS2中,要將mymc的位置定在(100,100)處,要這樣:

          mymc._x = 100;

          mymc._y = 100;

          而在AS3中是這樣的:

          mymc.x = 100;

          mymc.y = 100;

          在AS2中對象的大小可以用width,height,_xscale,_yscale四個屬性來確定,在AS3中width和height是一樣的,不再說它了。AS3用scaleX和scaleY屬性取代了_xscale,_yscale屬性。同時它們的值也是有區(qū)別的。AS2中的,_xscale,_yscale屬性值是百分比。而AS3中的scaleX和scaleY值是一分比。一分比?這是我發(fā)明的,博士專用名詞,嘿嘿。scaleX和scaleY值實(shí)際就是放大縮小的倍數(shù)。比如,在AS2中 mymc._xscale = 30; 這是將mymc的寬度縮小到原來的30%。

          在AS3中 mymc.scalex = 30; 這是將mymc的寬度放大到原來的30倍。要將寬度縮小到30%,就要用

          mymc.scale = 0.3;

          3.2.4 演示:

          那么現(xiàn)在就開始,同樣的,先導(dǎo)入底圖

          這里有點(diǎn)不一樣,在元件中鏈接要輸入一個類名,這是在AS代碼中從庫中取出來的一個橋梁。

          在第一個幀輸入代碼

          代碼:

          var i:Number = 1;

          addEventListener(Event.ENTER_FRAME,xx);

          function xx(event:Event):void {

          var x_mc:star = new star();

          addChild(x_mc);

          x_mc.x = Math.random()*1000;

          x_mc.scaleX = 0.2 + Math.random();

          x_mc.scaleY = 0.2 + Math.random();

          i++;

          if(i>50){

          this.removeChildAt(1);

          i=50;

          }

          }

          現(xiàn)在就不需要擔(dān)心上面會出現(xiàn)的效果了,你需要多少顆流星,你只需要把if(i>50)改成你需要的數(shù)字就行了。

          補(bǔ)充一下:

          x_mc.scaleX = 0.2 + Math.random();

          x_mc.scaleY = 0.2 + Math.random();

          0.2 + Math.random();會產(chǎn)生0.2-1.2間的隨機(jī)數(shù),這就讓流星縮小到20%到放大到120%間,落下來的流星,大小不一,顯得更加真實(shí)一些。

          removeChildAt(n);是刪除已加載的顯式對象,其中的n是已加載的對象的索引號。從addEventListener(Event.ENTER_FRAME,xx);這一句可以看出,運(yùn)行一幀,就會從庫中加載一顆流星,同時i加,這樣當(dāng)i等于50時,場景中就已有50顆流星了。這個時候我們用this.removeChildAt(1);將最先加載的流星刪除。然后將i設(shè)為50,到下一幀,i就又大于50了,那么要加載1顆流星,同時又刪除了一顆流星,這就達(dá)到了一個動態(tài)平衡,場景中始終只有50顆流星。要不然,就會流星的數(shù)量就越來越多。

          從上面的兩個例子可以發(fā)現(xiàn),在導(dǎo)入AS3之后,使得FLASH更為簡單得實(shí)現(xiàn)。

          3.3 XML的運(yùn)用

          前面講到XML是用來存放數(shù)據(jù)的,下面我簡單的做一個相冊。

          制作思路:flash--àAS類運(yùn)行---à導(dǎo)入XML里面的數(shù)據(jù)---à運(yùn)行相冊

          首先在Flash中布局好需要的材料:

          說了相冊,當(dāng)然要有相片啦。但用了XML就不同了,圖片不需要放進(jìn)FLASH的庫里面了,他可以獨(dú)立出來,方便了使用者對圖片的修改。

          3.3.1 新建FLASH

          我們先創(chuàng)建一個FLASH。布局好相冊的形式。

          3.3.2 創(chuàng)建 viewer.as 的類

          減小在FLASH里面的代碼。使得FLASH的安全有一定的保護(hù)。也減小FLASH的容量大小。

          之后就在第一幀輸入ActionScript 代碼。他的作用是用來控制輸入相冊

          新建一個類

          //-------------------------------------

          //-------------------------------------

          //初始化部分

          var myXML = new XML ();

          var myArray = new Array ();

          //初始化參數(shù)設(shè)置

          var smallPicWidth = 50;

          var smallPicHeight = 50;

          var bigPicWidth = 610;

          var bigPicHeight = 440;

          myXML.ignoreWhite = true;

          //初始化函數(shù)設(shè)置

          myXML.onLoad = function (ok)

          {

          if (ok)

          {

          _global.scrollSpeed = myXML.firstChild.attributes.scrollSpeed;

          albumText = myXML.firstChild.attributes.albumText;

          _global.gap = myXML.firstChild.attributes.gap;

          praseXML ();

          }

          }

          //函數(shù)設(shè)置

          function praseXML ()

          {

          for (var i = 0; i < myXML.firstChild.childNodes.length; i ++)

          {

          var tempObj = myXML.firstChild.childNodes [i].attributes;

          myArray.push (

          {

          linkURL : tempObj.linkURL,

          imgURL : tempObj.imgURL,

          imgText : tempObj.imgText

          })

          }

          drawLeft ();

          }

          //

          function drawLeft ()

          {

          for (var i = 0; i < myArray.length; i ++)

          {

          var picLoaderTemp = leftBar.createEmptyMovieClip ("picLoader" + i, i + 1);

          var picCounterTemp = leftBar.createEmptyMovieClip ("picCounter" + i, i + 10001);

          picCounterTemp.id = i;

          picLoaderTemp._x = 10;

          picLoaderTemp._y = smallPicHeight * i + _global.gap * i + 10;

          picLoaderTemp.loadMovie (myArray [i].imgURL);

          picCounterTemp.onEnterFrame = function ()

          {

          var tempName = leftBar ["picLoader" + this.id];

          if (tempName._width > 0)

          {

          var tempScale = Math.min (smallPicWidth / tempName._width, smallPicHeight / tempName._height)

          tempName._width = tempScale * tempName._width

          tempName._height = tempScale * tempName._height;

          tempName.onPress = function ()

          {

          var tempNum = this._name.slice (9);

          textArea.contentText.text = myArray [tempNum].imgText;

          drawRight (myArray [tempNum].imgURL);

          }

          delete this.onEnterFrame;

          }

          }

          }

          }

          function drawRight (a)

          {

          picLoader.loadMovie (a);

          var picCounter = this.createEmptyMovieClip ("picCounter", 60000);

          picCounter.onEnterFrame = function ()

          {

          if (picLoader._width > 0)

          {

          var tempScale = Math.min (bigPicWidth / picLoader._width , bigPicHeight / picLoader._height);

          picLoader._width = tempScale * picLoader._width;

          picLoader._height = tempScale * picLoader._height;

          picLoader._x = (bigPicWidth+20 - picLoader._width) / 2 + smallPicWidth+20;

          picLoader._y = (bigPicHeight - picLoader._height) / 2+35;

          picLoader.onPress = function ()

          {

          getURL (a, "_blank");

          }

          delete picCounter.onEnterFrame;

          }

          }

          }

          leftBar.onEnterFrame = function ()

          {

          if (_xmouse < smallPicWidth+20)

          {

          leftBar._y -= (_ymouse - Stage.height/ 2)/10;

          if (leftBar._y > 0)

          {

          leftBar._y = 0;

          } else if (leftBar._y <= Stage.height - leftBar._height-20)

          {

          leftBar._y = Stage.height - leftBar._height-20;

          }

          }

          }

          //開始執(zhí)行函數(shù)

          myXML.load ("pics.xml");

          3.3.3創(chuàng)建 pics.xml 的類

          利用外部來導(dǎo)入圖片到FLASH,也可以它只是一種橋接,不過非常的實(shí)用,不僅僅是ActionScript ,在C#,Java等語言都被廣泛的運(yùn)用。


          <?xml version='1.0' encoding='UTF-8'?>

          <data albumText='2advanced壁紙' gap='-5' scrollSpeed='5'>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙1'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙2'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙3'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙4'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙5'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙6'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙1'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙2'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙3'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙4'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙5'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙6'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙1'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙2'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙3'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙4'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙5'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙6'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙1'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙2'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙3'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙4'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙5'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙6'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙1'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙2'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙3'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙4'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙5'/>

          <pic linkURL='jpg.jpg' imgURL='jpg.jpg' imgText='壁紙6'/>

          </data>

          XML它的好處就是讓修改者修改起來非常方便,上面的例子,我只要在XML里面修改。就可以對FLASH中的圖片進(jìn)行添加或刪除。也加強(qiáng)了安全方便的保護(hù)。

          總 結(jié)

          近幾年來隨著我校的擴(kuò)招,辦學(xué)規(guī)模不斷擴(kuò)大的前提下,原有的教材管理系統(tǒng)已不再滿足需求,。因此,本人結(jié)合本校教材管理工作的實(shí)際情況開發(fā)了此系統(tǒng)。

          本系統(tǒng)采用B/S的框架結(jié)構(gòu),以.NET為開發(fā)平臺,以C#作為開發(fā)語言,以SQL Server作為后臺數(shù)據(jù)庫,運(yùn)用面向?qū)ο蟮脑O(shè)計思想和UML建模知識,按照從需求分析、系統(tǒng)體系結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫設(shè)計、實(shí)現(xiàn)的開發(fā)流程完成了教材管理系統(tǒng)的開發(fā)和論文的撰寫。本系統(tǒng)完成了系統(tǒng)初始化、教材計劃管理、訂單管理、入庫管理、出庫管理、統(tǒng)計打印、權(quán)限管理等模塊,基本能夠滿足我校教材管理的需求。隨著該系統(tǒng)開發(fā)的完成,一方面使教材管理人員從繁重、復(fù)雜且易出現(xiàn)錯誤的手工操作中解脫出來,提高工作效率,實(shí)現(xiàn)了基于校園網(wǎng)的辦公自動化。另一方面也方便了學(xué)生通過校園網(wǎng)隨時查詢所領(lǐng)教材信息,加強(qiáng)了教材管理人員與學(xué)生之間的聯(lián)系,提高了教材管理工作的透明度,更好地實(shí)現(xiàn)了人性化管理。

          本系統(tǒng)還有一些不足的地方,整個系統(tǒng)的可靠性、健壯性還有待進(jìn)一步進(jìn)行測試,系統(tǒng)安全性設(shè)計還不夠完善,權(quán)限分配還沒有完成等。另外為了教材錄入的方便,條件允許的情況下,可以考慮購買一臺條形碼讀卡器設(shè)備實(shí)現(xiàn)教材基本信息的智能錄入。

          教材管理的全部工作都可通過該系統(tǒng)在網(wǎng)絡(luò)上完成,所有數(shù)據(jù)實(shí)時共享。整個系統(tǒng)實(shí)現(xiàn)后功能完善,使用方便,界面友好。系統(tǒng)能夠較好地適應(yīng)了高校教材管理的特點(diǎn)和要求,充分提高了教管理工作質(zhì)量與效率。同時,也為進(jìn)一步拓寬學(xué)生的知識體系結(jié)構(gòu)、增強(qiáng)學(xué)生學(xué)習(xí)的積極性、主動性和有針對性的培養(yǎng)能力創(chuàng)造條件。


          致 謝

          最后才寫


          參考文獻(xiàn)

          [1] 殿堂之路 《Flash-ActionScript3》.電子工業(yè)出版社.2009

          [2] 黃岡 于林 主編,《Macromedia Flash MX 標(biāo)準(zhǔn)教程》,北京希望電子出版社。本版號:ISBN 7—900118—41—1 . 2004,6:67~67

          [3] 胡一梅,胡海濤,常會俠.中文版Flash MX動畫電影夢工場.北京:北京希望電子出版社,2003:405~425.

          [4] 網(wǎng)冠科技.Flash MX 小游戲時尚制作百例.北京:機(jī)械工業(yè)出版社,2002:234~343.

          [5] 莫志雄,能偉建.Flash MX 網(wǎng)上動畫編程指南.北京:北京希望電子出版社,2003:102~290.

          [6] Sham Bhangal Igor Chromanski. Flash Game Design Collection.Beijing: Tsinghua University Press,2002:202~242.

          [7] 黃汗兵 主編,《Show good 創(chuàng)作寶典之FLASH MX教學(xué)課件與互動游戲》,人民郵電出版社。本版號:ISBN 7—115—10741—3120. 2005,18(2):50~50

          [8] 《FLASH MX實(shí)例創(chuàng)作教學(xué)寶典》,金版電子出版公司

          [9] 《XML技術(shù)在AS3.0語言編程中的應(yīng)用探究》

          [10] 《Flash ActionSpript 高級編程藝術(shù)》


          主站蜘蛛池模板: 日本一区二区三区免费高清 | 天天综合色一区二区三区| 日韩免费无码视频一区二区三区| 精品一区精品二区制服| 激情亚洲一区国产精品| 极品人妻少妇一区二区三区| 国产福利一区二区三区在线视频 | 一区二区三区四区视频在线| 亚洲精品精华液一区二区| 久久伊人精品一区二区三区| 久久久国产精品一区二区18禁| 国产精品特级毛片一区二区三区| 久久一区二区三区免费播放| 国产丝袜无码一区二区三区视频| 亚洲色欲一区二区三区在线观看| 国产精品亚洲不卡一区二区三区| 欲色影视天天一区二区三区色香欲| 日韩一区二区免费视频| 亚洲一区无码精品色| 高清一区二区三区日本久| 精品久久一区二区| 亚洲福利电影一区二区?| 国产精品高清一区二区人妖| 夜夜爽一区二区三区精品| 久久精品国产免费一区| 夜精品a一区二区三区| 精品久久一区二区三区| 无码人妻久久一区二区三区蜜桃| 久久高清一区二区三区| 日本精品一区二区三区在线视频| 久久se精品一区二区| 福利一区二区在线| 精品一区高潮喷吹在线播放| 不卡一区二区在线| 日韩精品无码久久一区二区三| 中文字幕一区在线观看| 亚洲愉拍一区二区三区| 韩日午夜在线资源一区二区| 2018高清国产一区二区三区| 国产精品福利一区| 亚洲国产视频一区|