Flash 實用代碼總匯第1/2頁
更新時間:2009年04月26日 14:11:11 作者:
flash經(jīng)常使用的一些as代碼。
外部調(diào)用swf
on (release) {
loadMovieNum("service.swf", 1);
}
外部調(diào)用數(shù)據(jù)
loadVariablesNum("about.txt", 0);
System.useCodepage = true;//中文
音樂加入
mySound = new Sound();
mySound.attachSound("1");
mySound.start();
關閉指定音樂
mySound.stop("1");
外部調(diào)用音樂
mySound=new Sound();
mySound.loadSound("music.mp3",true);
mySound.start(0,100)
關閉音樂
mySound.stop();
鏈接場景:
on (release) {
gotoAndStop("貓的歷史",1);
}
外部調(diào)用
on (release) {
loadmovienum("a.swf",1)
}
清空文本框
_root.text=""
On(Release)
Set Variable:"input" = ""
Set Variable:"output" = ""
End On
輕松實現(xiàn)Flash的全屏播放
許多人都看過這樣的效果:把光盤放入光驅后,光盤自動運行,接著便是一段Flash制
作的開場動畫,動畫是全屏播放的,且右鍵點擊無效,動畫播放結束后,出現(xiàn)“關閉”按
鈕,單擊該按鈕后,全屏動畫關閉。
其實上面提到的全屏播放以及取消右鍵菜單等效果都是靠Fscommand指令在發(fā)揮作用。
Fscommand指令主要是用來控制Flash影片播放器的,但也可以用來打開其它的應用程序。
Fscommand指令只有在Flash影片播放器執(zhí)行時才有效(.swf和.exe),在Flash制作過程中
,按“Ctrl+Enter”預覽動畫,以及把動畫發(fā)布成網(wǎng)頁文件時,此指令無法發(fā)揮它的功能
。
Fscommand指令使用的語法是:Fscommand("command","arguments")
Command是指令的相關命令,arguments是命令的參數(shù)。
下面我們就來講講如何通過Fscommand指令來實現(xiàn)全屏播放、取消Flash播放時的右鍵
菜單以及關閉Flash動畫。
1、全屏播放Flash
“Fullscreen”是全屏的意思,在默認的情況下,F(xiàn)lash動畫不是以全屏播放(false
),如果需要讓動畫以全屏狀態(tài)播放,就必須把Fullscreen命令設置為True,寫為:
Fscommand ("Fullscreen","True");
根據(jù)需要,我們可以把它寫到幀、按鈕、MC(Movie Clip)中。
2、取消右鍵菜單
Showmenu命令是用來設置是(True)否(false)顯示Flash動畫播放器的快捷菜單的
全部指令,即右擊鼠標時彈出的菜單,默認為True,如果要取消彈出的菜單,必須在第一
幀這樣設置:
Fscommand ("showmenu","false");
3、關閉動畫
quit命令是用來關閉播放器的.swf和.exe文件,該命令沒有參數(shù),寫為:
fscommand ("quit");
如果你想在flash動畫結束時出現(xiàn)一個關閉動畫的按鈕,可以按下面的步驟做。
執(zhí)行“Insert”下的“New Symbol”(或按Ctrl+F8),在彈出的窗口中選Button,然
后制作一個簡單的按鈕,回到場景中,選中最后一幀,從“Library”中把剛剛建立的按鈕
拖到場景中,因為該按鈕在動畫的最后才顯示。
給按鈕寫上如下代碼,則實現(xiàn)按下按鈕即關閉flash動畫。
on (release)
{
fscommand ("quit");
}
一、幾種Action命令
1.影片的播放與停止:
Play( );//播放命令 stop( );//停止命令
2.改變Frame流向命令
gotoAndPlay(frame) //跳到指定的畫面并連續(xù)播放。
gotoAndStop(frame) //跳到指定的畫面并停止播放。
gotAndplay(“場景名稱”,frame)//跳到指定場景幀并連續(xù)播放。
gotoAndStop(“場景名稱:,frlme)//跳到指定場景幀并停止播放。
nextFrame( );//跳到下一幀播放;
PrevPrame( );//跳到上一幀播放。
3.控制影片剪輯的播放與停止:tellTarget命令
如:tellTarget(“C1”)
{gotoAndStop(2);}//跳影片剪輯實例C1的第2幀并停止。
二、幾種功能元件的制作方法
1.計時器的制作
單擊菜單Insert/new symbol,在彈出的對話框中輸入插入的符號名稱(如:計時器),確
定后選擇文字工具,屬性為動態(tài)(Dynamic text),在第一幀中畫兩個文本框。分別設置變
量名為munite和timer,在兩個文本框之間畫一個形如冒號的圓點(這兩個圓點可以做成一個
符號,類型為電影片段,每秒閃動一次.然后拖入到兩文本框之間。在第二幀插入幀。在
第一幀輸入動作腳本(Action)如下:
//設置時間的初值
if(!started) {
start_time=getTimer();
started=true;
timer=0;
i=o;
munite=0;
}
x=getTimer()-start_time;//計算時間的變化
x=int(x/1000); //時間的單位為1000分之一秒
y=x-60*i
if (y>59)
{i=i+1;munite=munite+1
timer=timer+1:
}
else
{timer=y}
該符號制作完畢后。將其拖入主場景中即可。
2.智能判斷速擇題,并作正誤提示
單擊菜單Insert/new symbo1,在彈出的對話框中輸入插入的符名稱。如:“對錯提示”。
符號類型為“電影片段”。在第一幀輸入文本“在括號內(nèi)輸入答案,按enrer鍵確定“ 在
該幀上輸入動作腳本:
_root.flah=false;_root.ans=" ";gotoAndStop(1);在第16幀插入空關鍵幀。在該幀上
畫一個形如“x”的圖或輸入文本“x”,在第30幀插入關鍵幀,幀AAction為_root.ans="
":gotoAndStop(31);在第31幀插人空白關鍵幀,在該幀上輸人靜態(tài)文本“請重作,按e
nter鍵確定?!霸谠搸斎肽_本:“stop();”至此,該符號制作主或:例如:
第1題:1十1十( )
A.2 B.3 C.4 D.0
在上例括號位置插入動態(tài)文本框,不輸入任何內(nèi)容。該文本框變量名為:ans。在該幀適當
位置插入電影“對錯提示”,該電影片斷名屬性為“ql”,在該電影片斷上輸人腳本:
//鍵盤事件控制程序
onClipEvent(keyDown)
}
//取得按鍵的鍵值
keycode=Key.getCode();
//判斷是否為Enter鍵
if(keycode==Key.ENTER) {
//判斷輸入的答案是否正確
//answer=Number(A)
if(_root,ans=="A" or _root.ans=="a"{
//顯示“答對了”信息
tellTsrget(_root.q1) {
gotoAndPlay(2);
}
} else {
//顯示“答錯了”信息
tellTarget(_root.q1) {
gotoAndplay(16)
}
}
}
}
3.聲音的加載和控制
插入一段音樂:在Pile/Import to Library中,找到要插入的音樂(如戰(zhàn)馬奔騰),打開符
號庫,找到“戰(zhàn)馬奔騰”符號,單擊右鍵,在彈出的菜單中單擊Linkage…命令,再在彈出
的菜單中選中Export for ActionSc選項,在Indentify框內(nèi)輸入標識符:如music。
在需要播放的幀插入如下腳本:
soun=new Sound();//創(chuàng)建聲音實例
sound.attachSound("music");//將音樂music鏈接到sound實例
sound.start(0,2);//播放音樂2遍
sound.setVolume(70):該音樂的音量為70%。
以上加載音樂通過幀加載,也可以通過按鈕加載。
停止音樂的方法:制作一個按鈕,在按鈕上輸人腳本:
on(release)
{
sound.stop();
}
4.如何用鍵盤控制幀的跳轉
有的教師喜歡用鍵盤進行操作,如何使這類操作方使自如呢?用Flash MX制作的方法如下:
制作一個符號(如“知識回顧”),符號類型為“電影片段”。在這個符號中將需要回顧的
知識點逐幀展示,每幀動作腳本為:stop()回到主場景,在需要的幀插入該符號,該幀腳
本為:stop();插入后.單擊該符號.輸人腳本:
onClipEvent(Key Down) {//鍵盤響應,按下任一鍵時響應該命令
nextFrame();
}
這樣即實現(xiàn)了按任一鍵便可跳轉到指定幀的效果。此例僅僅是一種基本方法,讀者朋友在
應用時可以有更多的擴展。
5.鼠標指向顯示填空題答案
顯示一些問題的答案,可以將這一答案制成—個按鈕,在這一按鈕的Up幀可以為空白關鍵
幀,其它幀為答案內(nèi)容。在問題的答案處插入該按鈕,在該幀輸入腳本:
on(release) {
gotoAndStop;//第i幀將答案固定顯示在屏幕上
flash場景之間相互跳轉的實現(xiàn)方法
作者:佚名 來源:InterNet 加入時間:2005-2-25
在制作flash動畫的時候,可能會有有很的mc
有時會把它放到幾個場景中,那么在場景中的跳轉如何實現(xiàn)呢?
1.
方法一:(使用telltarg...
方法一:(使用telltarget命令)
按鈕上的as為:
on (release) {
tellTarget ("/") {
gotoAndPlay ("場景 1", 1);
}
}
2.
方法二(用gotoandpla...
方法二(用gotoandplay命令)
主場景2中的mc放到場景2的時間軸上
按鈕的as:
on?。颍澹欤澹幔螅濉。?
gotoAndPlay("場景1",1)
}
并且在最后一幀加stop()
問題就可以解決了:
3.
方法三(利用路徑_root.g...
方法三(利用路徑_root.gotoandplay())
第二個場景2里面只有一個mc,在這個mc的最后一幀是stop和一個replay按
鈕
按鈕的as:_root.gotoAndPlay(1)
【即告知按鈕回到場景1的第一幀】
4.
方法四(給場景起不同的名字) ...
方法四(給場景起不同的名字)
如果你的as這樣寫:
第二個sence里面只有一個mc,在這個mc的最后一幀是stop和一個repl
ay按鈕
按鈕的as:
on release?。?
gotoAndPlay("sence1",1)
}
結果按下后卻是從這個mc的第一幀開始播放,而不是從sence1的第一幀
這是因為主場景的名字默認為senceN
MC里也可以有多個場景,而mc也是默認為senceN
所以當你在MC用上gotoAndPlay ("scene1", 1);時,指的是所在場景中MC里的第一幀,而
不是主場景
解決的方法,就是給場景定義不同的名字
scene1我們改名為:主場景
scene2我們改名為:次場景1
正確的as應該為:
on (release) {
tellTarget (_root) {
gotoAndPlay (1);
}
}
如果想實現(xiàn)按鈕點擊后從次場景播放就可以在按鈕上寫上:
on (release) {
tellTarget (_root.次場景) {
gotoAndPlay (1);
}
}
5.
方法五(利用標簽label) ...
方法五(利用標簽label)
我們在控制動畫的時候一般也不是從開始播放,可能是希望從某個場景的某一個關鍵幀開
始播放,那么標簽是
最好的實現(xiàn)方法;
例如我們希望點擊上面的按鈕的時候讓動畫從主場景中的label1開始播放,那么按鈕上的
as應該為:
on (release) {
tellTarget (_root) {
gotoAndPlay ("label1");
}
例如有3個場景,我們希望點擊上面的按鈕的時候讓動畫從次場景1中的label4開始播放,
那么按鈕上的as應該為:
on (release) {
tellTarget (_root) {
gotoAndPlay ("次場景 1", "label4");
}
}
}
}
如果想實現(xiàn)按鈕點擊后從次場景播放
就可以在按鈕上寫上:
on (release) {
tellTarget (_root.次場景) {
gotoAndPlay (1);
}
}
3,什么叫矢量圖?
矢量圖可以任意縮放而不影響Flash的畫質,位圖圖像一般只作為靜態(tài)元素或背景圖,F(xiàn)la
sh并不擅長處理位圖圖像的動作,應避免位圖圖像元素的動畫。
4,如何迅速地對齊不同F(xiàn)rame中的物件?
用 Inspector “Ctrl+Alt+I” 直接輸入坐標。
或是工具欄〉〉窗口〉〉面板〉〉排列“Ctrl+K” 調(diào)出排列面板來。圖例
5,怎樣調(diào)節(jié)一個Symbol/MC地透明度?
選中Symbol/MC,菜單欄找到Modify(修改) 〉〉 Instance (實例)〉〉Color effect (效果
)〉〉 Alpha(透明度) 調(diào)整就可以了
6,做好地Flash放在html上面以后,它老是循環(huán),怎么能夠讓它不進行循環(huán)?
最后一個禎地Action設置成Stop(停止)
7,怎樣給我的FLASH做一個預加載地LOADING?
用Action語法地if frame is loaded來實現(xiàn),新建一層,這層專門放Action,
第一幀,
ifFrameLoaded ("場景", frame) //假如場景中地禎數(shù)已經(jīng)載入
goto and play() //跳至并播放某某禎(自己設定)
{}
第二幀,
goto and play("場景1", 1)//跳至并播放第一禎循環(huán)
再加上一個load地MC循環(huán)播放在這兩幀的中間,就OK了。
什么?你要非常詳細地LOADING?那就當這個源碼吧,夠詳細了.
源碼下載
8,怎樣點擊一個按鈕打開一個頁面html而不是一個禎.
制作一個按鈕,上面地AS直接寫:
on (release)
getURL ("***.html");
{}
這里地***.html就是你要打開地頁面文件名,當然也可以是某某URL地址,比如說http://ww
w.flash8.net
9,我在按鈕地OVER禎放置了一個很大地MC,為什么我要沒有點擊到按鈕鼠標就變成了手地狀
態(tài)?
按鈕真正激活區(qū)是在HIT(按下)禎地位置,如果想控制按鈕的位置為一定值,可以在HIT禎繪
制一個透明地圖形來判斷.
10,如果屏蔽鼠標右鍵?FS命令都是什么意思?
fscommand ("fullscreen", "true/false");(全屏設置,TRUE開,F(xiàn)ALSE關)
fscommand ("showmenu", "true/false");(右鍵菜單設置,TRUE顯示,F(xiàn)ALSE不顯示)
fscommand ("allowscale", "true/false");(縮放設置,TRUE自由縮放,F(xiàn)ALSE調(diào)整畫面
不影響影片本身的尺寸)
fscommand ("trapallkeys", "true/false");(快捷鍵設置,TRUE快捷鍵開,F(xiàn)ALSE快捷鍵
關)
fscommand ("exec");(EXE程序調(diào)用)
fscommand ("quit");(退出關閉窗口)
11,在FLASH中的字體總是很模糊,用變清晰地辦法嗎?
寫好文本以后CTRL+T打開文本設置面板,在最后地文本框選項那里框選使用設計字體就行了
.(注意最好使用宋體,尺寸為12或者8,這樣比較工整)
12,我想做一個MTV,怎么導入聲音呀?
很簡單,CTRL+R導入你地聲音文件就行了.
13,我制作地MTV聲音和歌詞總是不同步.
CTRL+F打開禎控制面板,右邊找到聲音選項卡,調(diào)整聲音地同步效果為STREM(音頻數(shù)據(jù)流)模
式就行了.
14,為什么我做出來地MTV文件很大呀?
參看這篇貼子
15,FLASH地發(fā)布設置都有些什么?透明背景怎樣設置?
圖解圖1圖2圖3
在Dreamewaver中地設置:
圖解
(由FLASHWEB提供圖材)
16,怎樣可以做出很漂亮地字體特效?
用第三方軟件Swish和Swfx這些,閃吧地軟件資源有下載.
17,如何優(yōu)化我地FLASH?
參看這篇貼子
18,我在ACTION面板地高級模式為什么字體總是很小?
19,如何加載一個SWF文件
loadMovieNum地技巧
添加一個空地MC。實體名為ok,ACTION:
loadMovie ("dr/test.swf", "_root.ok");
控制這個MC的位置,大小等相對屬性(Property)就會影響調(diào)入SWF的位置和大小。
setProperty ("mc", _xscale, "****");
setProperty ("mc", _yscale, "****");
setProperty ("mc", _x, "****");
setProperty ("mc", _y, "****");
setProperty ("mc", _Alpha, "****"); ............
20,如何導入一個背景透明度效果比較好地位圖?
推薦使用PNG格式(FIREWORK),F(xiàn)LASH對PNG位圖地融合透明效果支持相當好。
21.如何用actionscript將頁面設為首頁和加入收藏夾?
一,用getURL的方法:
設為首頁:
on (release)
getURL(";void document.links[0].setHomePage('http://chabaoo.cn/);", "_se
lf", "POST");
{}
加入收藏夾:
on (release)
getURL(" window.external.AddFavorite('http://chabaoo.cn,'腳本之家');", "_self", "POST");
{}
二,用fscommand的方法,有點復雜
1,先在flash的按鈕上添加代碼:
首頁:
on (release)
fscommand("setHomePage", "http://chabaoo.cn);
{}
收藏夾:
on (release)
fscommand("addFavorite", "http://chabaoo.cn|精品素材社區(qū));
{}
然后在發(fā)布設置中選擇flash with fscommand,發(fā)布成html
2,修改html:
找到
// Handle all the the FSCommand messages in a Flash movie
function sethomepage_DoFSCommand(command, args)
{}
這一段,修改成:
// Handle all the the FSCommand messages in a Flash movie
function sethomepage_DoFSCommand(command, args)
var sethomepageObj = InternetExplorer ? sethomepage : document.sethomepage;
if (command == "setHomePage") {
document.links[0].style.behavior = "url(#default#homepage)";
document.links[0].setHomePage(args);
{} else if (command == "addFavorite")
args = args.split("|");
window.external.AddFavorite(args[0], args[1]);
{}
}
最后,如果html里一個鏈接都沒有,還需?lt;SCRIPT LANGUAGE=javascript>這句的前面添
加一句<a href="/"></a>
22.怎么讓動畫放完后自動關閉?
在最后一楨的ACTION里選FSCOMMOND一項,然后在右邊選中QUIT,就可以了
23.怎樣引入透明的位圖?
答:最好輸入png文件。png是fireworks文檔。當然你也可以輸入GIF89a格式的透明GIF圖
片。
24.如何在Flash中打開一個定制的瀏覽器新窗口?
這個問題,很常見,也討論過無數(shù)次,以前的一些有用的帖子找不到了,現(xiàn)在重新整
理如下:
常用也是很簡單的方法是用類似
Get URL (";")
這樣的一句,但有很多問題,比如打開了新窗口后,原窗口的內(nèi)容也被替代了。
1、在Flash中需要執(zhí)行打開新窗口動作的地方插入以下語句:
FS Command ("open_window", "filename.htm;newwin;toolbar=no,location=no,status=
no,
menubar=no,scrollbars=no,resizable=no,width=320,height=200")
其中Arguments:
filename.htm 要打開的文件名
newwin 新窗口的名字
toolbar=no,location=no,status=no,
menubar=no,scrollbars=no,resizable=no,width=320,height=200 新窗口的有關屬性,包括尺寸
注意以上三部分要用分號";"分隔
2、在File>Publish setting...中設定
HTML中的Tempalte : Flash with FSCommand
發(fā)布
3、編輯發(fā)布生成的html文件,找到以下一段:
code:-------------------------------------------------------------------------
-------<SCRIPT LANGUAGE=javascript>
<!--
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the the FSCommand messages in a Flash movie
function Movie1_DoFSCommand(command, args)
var Movie1Obj = InternetExplorer ? Movie1 : document.Movie1;
//
// Place your code here...
//
{}
...
------------------------------------------------------------------------------
--
改為:
code:-------------------------------------------------------------------------
-------<SCRIPT LANGUAGE=javascript>
<!--
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the the FSCommand messages in a Flash movie
function Movie1_DoFSCommand(command, args)
var Movie1Obj = InternetExplorer ? Movie1 : document.Movie1;
// Place your code here...
if (command == "open_window")
{
arg_array=args.split(";");
window.open(arg_array[0],arg_array[1],arg_array[2]);
{}
}
...
------------------------------------------------------------------------------
--
OK!
如果是插入現(xiàn)有的html頁,可以先發(fā)布,再copy相應的代碼到html文件。
25.如何用action控制倒放?
做一個mc放在合適的地方,里面有兩幀
第一幀:
If (GetProperty ("/a",_currentframe)<=1)
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_totalframes))
End Tell Target
Else
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_currentframe)-1)
End Tell Target
End If
第二幀:
Go to and Play (1)
這樣就可以讓/a倒放
但是還有一個問題無法解決:
如果我只想停一段呢?
比如說,我在第十個關鍵幀處加了一個STOP,在第三十個關鍵幀處加了一個STOP,現(xiàn)在想
倒到STOP處停下來,卻沒有辦法做到。
If (GetProperty ("/a",_currentframe)<=1)
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_totalframes))
End Tell Target
Else
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_currentframe)-1)
End Tell Target
End If
第二幀:
Go to and Play (1)
這一段肯定放在一個mc 里,
假設這個mc為/b
在/a需要停止的幀理設置
Begin Tell Target ("/b")
stop
End Tell Target
stop
就可以了
26.內(nèi)部聲音角色與外部聲音角色有何差異?
沒什么太大的區(qū)別
外部文件如果導如的話可以降低文件的大小
在發(fā)布的時候或者做成光盤的時候需要和DCR文件一起走,并且始終保持相對路徑不變
還有一個流式播放的問題
如果導入的聲音文件過大就會影響同步效果,聲音滯后。(因為Director在播放內(nèi)部聲音
之前就將其預栽到RAM中)外部聲音文件是流式的,一邊播放,一邊下載。但要注意連接路
徑問題。
27.如何使聲音無限循環(huán)?
將聲音的循環(huán)次數(shù)定義成足夠大,如果你的音樂設為STREM(音頻數(shù)據(jù)流)那你的swf文
件也會足夠大。
28.如何控制聲音的播放及停止
在library 里右健點擊聲音文件,選linkage…
設置Export This Symbol
entifier:
取名為"sound"
然后就可以在stage里面設置了
s = new Sound();
s.attachSound("sound");
要讓聲音sound關掉只須
執(zhí)行:
s.stop();
要讓他開始播放就是
s.start();
29.如何調(diào)入SWF文件及控制它的大小和位置?
一、如何調(diào)入一個SWF文件:
調(diào)入一個SWF置給一個層loadMovieNum ("path/movieFile.swf", 0);
其“path/movieFile.swf”為要調(diào)入文件的地址,“0”為層號,“0”為第0層;
調(diào)入一個SWF置給一個MC
loadMovie ("path/movieFile.swf", "MC_Name");其“path/movieFile.swf”為要調(diào)入文
件的地址,“MC_Name”是MC的名字。
二、如何改變調(diào)入后的SWF大小:
setProperty ("MC_Name", _xscale, size_x);
setProperty ("MC_Name", _yscale, size_y);
“MC_Name”顧名思義是那個MC的名字了,“_xscale”和“_yscale”是指這個MC的X與Y點
的位置,這個位置是用來控制MC大小的。其“size_x”和“size_y”為設定這個MC具體大
小的數(shù)值。
三、如何改變其位置:
一個簡單的方法是,我們可以來移動那個已給置入MOVIE文件的MC,就像我們用來改變一張
圖的位置那樣用鼠標拖動它。
另一個方法是利用setProperty來進行改變這個MC的位置。
setProperty ("MC_Name", _x, "position_x");
setProperty ("MC_Name", _y, "position_y");
“MC_Name”是MC的名字,“_x”和“_y”指的是X坐標和Y坐標點,而“position_x”與“
position_y”是位置具體的數(shù)值。
希望各位能明白我這個簡單的教程!以上代碼均為FLASH5為標準。
作者: 雨花石
on (release) {
loadMovieNum("service.swf", 1);
}
外部調(diào)用數(shù)據(jù)
loadVariablesNum("about.txt", 0);
System.useCodepage = true;//中文
音樂加入
mySound = new Sound();
mySound.attachSound("1");
mySound.start();
關閉指定音樂
mySound.stop("1");
外部調(diào)用音樂
mySound=new Sound();
mySound.loadSound("music.mp3",true);
mySound.start(0,100)
關閉音樂
mySound.stop();
鏈接場景:
on (release) {
gotoAndStop("貓的歷史",1);
}
外部調(diào)用
on (release) {
loadmovienum("a.swf",1)
}
清空文本框
_root.text=""
On(Release)
Set Variable:"input" = ""
Set Variable:"output" = ""
End On
輕松實現(xiàn)Flash的全屏播放
許多人都看過這樣的效果:把光盤放入光驅后,光盤自動運行,接著便是一段Flash制
作的開場動畫,動畫是全屏播放的,且右鍵點擊無效,動畫播放結束后,出現(xiàn)“關閉”按
鈕,單擊該按鈕后,全屏動畫關閉。
其實上面提到的全屏播放以及取消右鍵菜單等效果都是靠Fscommand指令在發(fā)揮作用。
Fscommand指令主要是用來控制Flash影片播放器的,但也可以用來打開其它的應用程序。
Fscommand指令只有在Flash影片播放器執(zhí)行時才有效(.swf和.exe),在Flash制作過程中
,按“Ctrl+Enter”預覽動畫,以及把動畫發(fā)布成網(wǎng)頁文件時,此指令無法發(fā)揮它的功能
。
Fscommand指令使用的語法是:Fscommand("command","arguments")
Command是指令的相關命令,arguments是命令的參數(shù)。
下面我們就來講講如何通過Fscommand指令來實現(xiàn)全屏播放、取消Flash播放時的右鍵
菜單以及關閉Flash動畫。
1、全屏播放Flash
“Fullscreen”是全屏的意思,在默認的情況下,F(xiàn)lash動畫不是以全屏播放(false
),如果需要讓動畫以全屏狀態(tài)播放,就必須把Fullscreen命令設置為True,寫為:
Fscommand ("Fullscreen","True");
根據(jù)需要,我們可以把它寫到幀、按鈕、MC(Movie Clip)中。
2、取消右鍵菜單
Showmenu命令是用來設置是(True)否(false)顯示Flash動畫播放器的快捷菜單的
全部指令,即右擊鼠標時彈出的菜單,默認為True,如果要取消彈出的菜單,必須在第一
幀這樣設置:
Fscommand ("showmenu","false");
3、關閉動畫
quit命令是用來關閉播放器的.swf和.exe文件,該命令沒有參數(shù),寫為:
fscommand ("quit");
如果你想在flash動畫結束時出現(xiàn)一個關閉動畫的按鈕,可以按下面的步驟做。
執(zhí)行“Insert”下的“New Symbol”(或按Ctrl+F8),在彈出的窗口中選Button,然
后制作一個簡單的按鈕,回到場景中,選中最后一幀,從“Library”中把剛剛建立的按鈕
拖到場景中,因為該按鈕在動畫的最后才顯示。
給按鈕寫上如下代碼,則實現(xiàn)按下按鈕即關閉flash動畫。
on (release)
{
fscommand ("quit");
}
一、幾種Action命令
1.影片的播放與停止:
Play( );//播放命令 stop( );//停止命令
2.改變Frame流向命令
gotoAndPlay(frame) //跳到指定的畫面并連續(xù)播放。
gotoAndStop(frame) //跳到指定的畫面并停止播放。
gotAndplay(“場景名稱”,frame)//跳到指定場景幀并連續(xù)播放。
gotoAndStop(“場景名稱:,frlme)//跳到指定場景幀并停止播放。
nextFrame( );//跳到下一幀播放;
PrevPrame( );//跳到上一幀播放。
3.控制影片剪輯的播放與停止:tellTarget命令
如:tellTarget(“C1”)
{gotoAndStop(2);}//跳影片剪輯實例C1的第2幀并停止。
二、幾種功能元件的制作方法
1.計時器的制作
單擊菜單Insert/new symbol,在彈出的對話框中輸入插入的符號名稱(如:計時器),確
定后選擇文字工具,屬性為動態(tài)(Dynamic text),在第一幀中畫兩個文本框。分別設置變
量名為munite和timer,在兩個文本框之間畫一個形如冒號的圓點(這兩個圓點可以做成一個
符號,類型為電影片段,每秒閃動一次.然后拖入到兩文本框之間。在第二幀插入幀。在
第一幀輸入動作腳本(Action)如下:
//設置時間的初值
if(!started) {
start_time=getTimer();
started=true;
timer=0;
i=o;
munite=0;
}
x=getTimer()-start_time;//計算時間的變化
x=int(x/1000); //時間的單位為1000分之一秒
y=x-60*i
if (y>59)
{i=i+1;munite=munite+1
timer=timer+1:
}
else
{timer=y}
該符號制作完畢后。將其拖入主場景中即可。
2.智能判斷速擇題,并作正誤提示
單擊菜單Insert/new symbo1,在彈出的對話框中輸入插入的符名稱。如:“對錯提示”。
符號類型為“電影片段”。在第一幀輸入文本“在括號內(nèi)輸入答案,按enrer鍵確定“ 在
該幀上輸入動作腳本:
_root.flah=false;_root.ans=" ";gotoAndStop(1);在第16幀插入空關鍵幀。在該幀上
畫一個形如“x”的圖或輸入文本“x”,在第30幀插入關鍵幀,幀AAction為_root.ans="
":gotoAndStop(31);在第31幀插人空白關鍵幀,在該幀上輸人靜態(tài)文本“請重作,按e
nter鍵確定?!霸谠搸斎肽_本:“stop();”至此,該符號制作主或:例如:
第1題:1十1十( )
A.2 B.3 C.4 D.0
在上例括號位置插入動態(tài)文本框,不輸入任何內(nèi)容。該文本框變量名為:ans。在該幀適當
位置插入電影“對錯提示”,該電影片斷名屬性為“ql”,在該電影片斷上輸人腳本:
//鍵盤事件控制程序
onClipEvent(keyDown)
}
//取得按鍵的鍵值
keycode=Key.getCode();
//判斷是否為Enter鍵
if(keycode==Key.ENTER) {
//判斷輸入的答案是否正確
//answer=Number(A)
if(_root,ans=="A" or _root.ans=="a"{
//顯示“答對了”信息
tellTsrget(_root.q1) {
gotoAndPlay(2);
}
} else {
//顯示“答錯了”信息
tellTarget(_root.q1) {
gotoAndplay(16)
}
}
}
}
3.聲音的加載和控制
插入一段音樂:在Pile/Import to Library中,找到要插入的音樂(如戰(zhàn)馬奔騰),打開符
號庫,找到“戰(zhàn)馬奔騰”符號,單擊右鍵,在彈出的菜單中單擊Linkage…命令,再在彈出
的菜單中選中Export for ActionSc選項,在Indentify框內(nèi)輸入標識符:如music。
在需要播放的幀插入如下腳本:
soun=new Sound();//創(chuàng)建聲音實例
sound.attachSound("music");//將音樂music鏈接到sound實例
sound.start(0,2);//播放音樂2遍
sound.setVolume(70):該音樂的音量為70%。
以上加載音樂通過幀加載,也可以通過按鈕加載。
停止音樂的方法:制作一個按鈕,在按鈕上輸人腳本:
on(release)
{
sound.stop();
}
4.如何用鍵盤控制幀的跳轉
有的教師喜歡用鍵盤進行操作,如何使這類操作方使自如呢?用Flash MX制作的方法如下:
制作一個符號(如“知識回顧”),符號類型為“電影片段”。在這個符號中將需要回顧的
知識點逐幀展示,每幀動作腳本為:stop()回到主場景,在需要的幀插入該符號,該幀腳
本為:stop();插入后.單擊該符號.輸人腳本:
onClipEvent(Key Down) {//鍵盤響應,按下任一鍵時響應該命令
nextFrame();
}
這樣即實現(xiàn)了按任一鍵便可跳轉到指定幀的效果。此例僅僅是一種基本方法,讀者朋友在
應用時可以有更多的擴展。
5.鼠標指向顯示填空題答案
顯示一些問題的答案,可以將這一答案制成—個按鈕,在這一按鈕的Up幀可以為空白關鍵
幀,其它幀為答案內(nèi)容。在問題的答案處插入該按鈕,在該幀輸入腳本:
on(release) {
gotoAndStop;//第i幀將答案固定顯示在屏幕上
flash場景之間相互跳轉的實現(xiàn)方法
作者:佚名 來源:InterNet 加入時間:2005-2-25
在制作flash動畫的時候,可能會有有很的mc
有時會把它放到幾個場景中,那么在場景中的跳轉如何實現(xiàn)呢?
1.
方法一:(使用telltarg...
方法一:(使用telltarget命令)
按鈕上的as為:
on (release) {
tellTarget ("/") {
gotoAndPlay ("場景 1", 1);
}
}
2.
方法二(用gotoandpla...
方法二(用gotoandplay命令)
主場景2中的mc放到場景2的時間軸上
按鈕的as:
on?。颍澹欤澹幔螅濉。?
gotoAndPlay("場景1",1)
}
并且在最后一幀加stop()
問題就可以解決了:
3.
方法三(利用路徑_root.g...
方法三(利用路徑_root.gotoandplay())
第二個場景2里面只有一個mc,在這個mc的最后一幀是stop和一個replay按
鈕
按鈕的as:_root.gotoAndPlay(1)
【即告知按鈕回到場景1的第一幀】
4.
方法四(給場景起不同的名字) ...
方法四(給場景起不同的名字)
如果你的as這樣寫:
第二個sence里面只有一個mc,在這個mc的最后一幀是stop和一個repl
ay按鈕
按鈕的as:
on release?。?
gotoAndPlay("sence1",1)
}
結果按下后卻是從這個mc的第一幀開始播放,而不是從sence1的第一幀
這是因為主場景的名字默認為senceN
MC里也可以有多個場景,而mc也是默認為senceN
所以當你在MC用上gotoAndPlay ("scene1", 1);時,指的是所在場景中MC里的第一幀,而
不是主場景
解決的方法,就是給場景定義不同的名字
scene1我們改名為:主場景
scene2我們改名為:次場景1
正確的as應該為:
on (release) {
tellTarget (_root) {
gotoAndPlay (1);
}
}
如果想實現(xiàn)按鈕點擊后從次場景播放就可以在按鈕上寫上:
on (release) {
tellTarget (_root.次場景) {
gotoAndPlay (1);
}
}
5.
方法五(利用標簽label) ...
方法五(利用標簽label)
我們在控制動畫的時候一般也不是從開始播放,可能是希望從某個場景的某一個關鍵幀開
始播放,那么標簽是
最好的實現(xiàn)方法;
例如我們希望點擊上面的按鈕的時候讓動畫從主場景中的label1開始播放,那么按鈕上的
as應該為:
on (release) {
tellTarget (_root) {
gotoAndPlay ("label1");
}
例如有3個場景,我們希望點擊上面的按鈕的時候讓動畫從次場景1中的label4開始播放,
那么按鈕上的as應該為:
on (release) {
tellTarget (_root) {
gotoAndPlay ("次場景 1", "label4");
}
}
}
}
如果想實現(xiàn)按鈕點擊后從次場景播放
就可以在按鈕上寫上:
on (release) {
tellTarget (_root.次場景) {
gotoAndPlay (1);
}
}
3,什么叫矢量圖?
矢量圖可以任意縮放而不影響Flash的畫質,位圖圖像一般只作為靜態(tài)元素或背景圖,F(xiàn)la
sh并不擅長處理位圖圖像的動作,應避免位圖圖像元素的動畫。
4,如何迅速地對齊不同F(xiàn)rame中的物件?
用 Inspector “Ctrl+Alt+I” 直接輸入坐標。
或是工具欄〉〉窗口〉〉面板〉〉排列“Ctrl+K” 調(diào)出排列面板來。圖例
5,怎樣調(diào)節(jié)一個Symbol/MC地透明度?
選中Symbol/MC,菜單欄找到Modify(修改) 〉〉 Instance (實例)〉〉Color effect (效果
)〉〉 Alpha(透明度) 調(diào)整就可以了
6,做好地Flash放在html上面以后,它老是循環(huán),怎么能夠讓它不進行循環(huán)?
最后一個禎地Action設置成Stop(停止)
7,怎樣給我的FLASH做一個預加載地LOADING?
用Action語法地if frame is loaded來實現(xiàn),新建一層,這層專門放Action,
第一幀,
ifFrameLoaded ("場景", frame) //假如場景中地禎數(shù)已經(jīng)載入
goto and play() //跳至并播放某某禎(自己設定)
{}
第二幀,
goto and play("場景1", 1)//跳至并播放第一禎循環(huán)
再加上一個load地MC循環(huán)播放在這兩幀的中間,就OK了。
什么?你要非常詳細地LOADING?那就當這個源碼吧,夠詳細了.
源碼下載
8,怎樣點擊一個按鈕打開一個頁面html而不是一個禎.
制作一個按鈕,上面地AS直接寫:
on (release)
getURL ("***.html");
{}
這里地***.html就是你要打開地頁面文件名,當然也可以是某某URL地址,比如說http://ww
w.flash8.net
9,我在按鈕地OVER禎放置了一個很大地MC,為什么我要沒有點擊到按鈕鼠標就變成了手地狀
態(tài)?
按鈕真正激活區(qū)是在HIT(按下)禎地位置,如果想控制按鈕的位置為一定值,可以在HIT禎繪
制一個透明地圖形來判斷.
10,如果屏蔽鼠標右鍵?FS命令都是什么意思?
fscommand ("fullscreen", "true/false");(全屏設置,TRUE開,F(xiàn)ALSE關)
fscommand ("showmenu", "true/false");(右鍵菜單設置,TRUE顯示,F(xiàn)ALSE不顯示)
fscommand ("allowscale", "true/false");(縮放設置,TRUE自由縮放,F(xiàn)ALSE調(diào)整畫面
不影響影片本身的尺寸)
fscommand ("trapallkeys", "true/false");(快捷鍵設置,TRUE快捷鍵開,F(xiàn)ALSE快捷鍵
關)
fscommand ("exec");(EXE程序調(diào)用)
fscommand ("quit");(退出關閉窗口)
11,在FLASH中的字體總是很模糊,用變清晰地辦法嗎?
寫好文本以后CTRL+T打開文本設置面板,在最后地文本框選項那里框選使用設計字體就行了
.(注意最好使用宋體,尺寸為12或者8,這樣比較工整)
12,我想做一個MTV,怎么導入聲音呀?
很簡單,CTRL+R導入你地聲音文件就行了.
13,我制作地MTV聲音和歌詞總是不同步.
CTRL+F打開禎控制面板,右邊找到聲音選項卡,調(diào)整聲音地同步效果為STREM(音頻數(shù)據(jù)流)模
式就行了.
14,為什么我做出來地MTV文件很大呀?
參看這篇貼子
15,FLASH地發(fā)布設置都有些什么?透明背景怎樣設置?
圖解圖1圖2圖3
在Dreamewaver中地設置:
圖解
(由FLASHWEB提供圖材)
16,怎樣可以做出很漂亮地字體特效?
用第三方軟件Swish和Swfx這些,閃吧地軟件資源有下載.
17,如何優(yōu)化我地FLASH?
參看這篇貼子
18,我在ACTION面板地高級模式為什么字體總是很小?
19,如何加載一個SWF文件
loadMovieNum地技巧
添加一個空地MC。實體名為ok,ACTION:
loadMovie ("dr/test.swf", "_root.ok");
控制這個MC的位置,大小等相對屬性(Property)就會影響調(diào)入SWF的位置和大小。
setProperty ("mc", _xscale, "****");
setProperty ("mc", _yscale, "****");
setProperty ("mc", _x, "****");
setProperty ("mc", _y, "****");
setProperty ("mc", _Alpha, "****"); ............
20,如何導入一個背景透明度效果比較好地位圖?
推薦使用PNG格式(FIREWORK),F(xiàn)LASH對PNG位圖地融合透明效果支持相當好。
21.如何用actionscript將頁面設為首頁和加入收藏夾?
一,用getURL的方法:
設為首頁:
on (release)
getURL(";void document.links[0].setHomePage('http://chabaoo.cn/);", "_se
lf", "POST");
{}
加入收藏夾:
on (release)
getURL(" window.external.AddFavorite('http://chabaoo.cn,'腳本之家');", "_self", "POST");
{}
二,用fscommand的方法,有點復雜
1,先在flash的按鈕上添加代碼:
首頁:
on (release)
fscommand("setHomePage", "http://chabaoo.cn);
{}
收藏夾:
on (release)
fscommand("addFavorite", "http://chabaoo.cn|精品素材社區(qū));
{}
然后在發(fā)布設置中選擇flash with fscommand,發(fā)布成html
2,修改html:
找到
// Handle all the the FSCommand messages in a Flash movie
function sethomepage_DoFSCommand(command, args)
{}
這一段,修改成:
// Handle all the the FSCommand messages in a Flash movie
function sethomepage_DoFSCommand(command, args)
var sethomepageObj = InternetExplorer ? sethomepage : document.sethomepage;
if (command == "setHomePage") {
document.links[0].style.behavior = "url(#default#homepage)";
document.links[0].setHomePage(args);
{} else if (command == "addFavorite")
args = args.split("|");
window.external.AddFavorite(args[0], args[1]);
{}
}
最后,如果html里一個鏈接都沒有,還需?lt;SCRIPT LANGUAGE=javascript>這句的前面添
加一句<a href="/"></a>
22.怎么讓動畫放完后自動關閉?
在最后一楨的ACTION里選FSCOMMOND一項,然后在右邊選中QUIT,就可以了
23.怎樣引入透明的位圖?
答:最好輸入png文件。png是fireworks文檔。當然你也可以輸入GIF89a格式的透明GIF圖
片。
24.如何在Flash中打開一個定制的瀏覽器新窗口?
這個問題,很常見,也討論過無數(shù)次,以前的一些有用的帖子找不到了,現(xiàn)在重新整
理如下:
常用也是很簡單的方法是用類似
Get URL (";")
這樣的一句,但有很多問題,比如打開了新窗口后,原窗口的內(nèi)容也被替代了。
1、在Flash中需要執(zhí)行打開新窗口動作的地方插入以下語句:
FS Command ("open_window", "filename.htm;newwin;toolbar=no,location=no,status=
no,
menubar=no,scrollbars=no,resizable=no,width=320,height=200")
其中Arguments:
filename.htm 要打開的文件名
newwin 新窗口的名字
toolbar=no,location=no,status=no,
menubar=no,scrollbars=no,resizable=no,width=320,height=200 新窗口的有關屬性,包括尺寸
注意以上三部分要用分號";"分隔
2、在File>Publish setting...中設定
HTML中的Tempalte : Flash with FSCommand
發(fā)布
3、編輯發(fā)布生成的html文件,找到以下一段:
code:-------------------------------------------------------------------------
-------<SCRIPT LANGUAGE=javascript>
<!--
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the the FSCommand messages in a Flash movie
function Movie1_DoFSCommand(command, args)
var Movie1Obj = InternetExplorer ? Movie1 : document.Movie1;
//
// Place your code here...
//
{}
...
------------------------------------------------------------------------------
--
改為:
code:-------------------------------------------------------------------------
-------<SCRIPT LANGUAGE=javascript>
<!--
var InternetExplorer = navigator.appName.indexOf("Microsoft") != -1;
// Handle all the the FSCommand messages in a Flash movie
function Movie1_DoFSCommand(command, args)
var Movie1Obj = InternetExplorer ? Movie1 : document.Movie1;
// Place your code here...
if (command == "open_window")
{
arg_array=args.split(";");
window.open(arg_array[0],arg_array[1],arg_array[2]);
{}
}
...
------------------------------------------------------------------------------
--
OK!
如果是插入現(xiàn)有的html頁,可以先發(fā)布,再copy相應的代碼到html文件。
25.如何用action控制倒放?
做一個mc放在合適的地方,里面有兩幀
第一幀:
If (GetProperty ("/a",_currentframe)<=1)
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_totalframes))
End Tell Target
Else
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_currentframe)-1)
End Tell Target
End If
第二幀:
Go to and Play (1)
這樣就可以讓/a倒放
但是還有一個問題無法解決:
如果我只想停一段呢?
比如說,我在第十個關鍵幀處加了一個STOP,在第三十個關鍵幀處加了一個STOP,現(xiàn)在想
倒到STOP處停下來,卻沒有辦法做到。
If (GetProperty ("/a",_currentframe)<=1)
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_totalframes))
End Tell Target
Else
Begin Tell Target ("/a")
Go to and Stop (GetProperty ("/a",_currentframe)-1)
End Tell Target
End If
第二幀:
Go to and Play (1)
這一段肯定放在一個mc 里,
假設這個mc為/b
在/a需要停止的幀理設置
Begin Tell Target ("/b")
stop
End Tell Target
stop
就可以了
26.內(nèi)部聲音角色與外部聲音角色有何差異?
沒什么太大的區(qū)別
外部文件如果導如的話可以降低文件的大小
在發(fā)布的時候或者做成光盤的時候需要和DCR文件一起走,并且始終保持相對路徑不變
還有一個流式播放的問題
如果導入的聲音文件過大就會影響同步效果,聲音滯后。(因為Director在播放內(nèi)部聲音
之前就將其預栽到RAM中)外部聲音文件是流式的,一邊播放,一邊下載。但要注意連接路
徑問題。
27.如何使聲音無限循環(huán)?
將聲音的循環(huán)次數(shù)定義成足夠大,如果你的音樂設為STREM(音頻數(shù)據(jù)流)那你的swf文
件也會足夠大。
28.如何控制聲音的播放及停止
在library 里右健點擊聲音文件,選linkage…
設置Export This Symbol
entifier:
取名為"sound"
然后就可以在stage里面設置了
s = new Sound();
s.attachSound("sound");
要讓聲音sound關掉只須
執(zhí)行:
s.stop();
要讓他開始播放就是
s.start();
29.如何調(diào)入SWF文件及控制它的大小和位置?
一、如何調(diào)入一個SWF文件:
調(diào)入一個SWF置給一個層loadMovieNum ("path/movieFile.swf", 0);
其“path/movieFile.swf”為要調(diào)入文件的地址,“0”為層號,“0”為第0層;
調(diào)入一個SWF置給一個MC
loadMovie ("path/movieFile.swf", "MC_Name");其“path/movieFile.swf”為要調(diào)入文
件的地址,“MC_Name”是MC的名字。
二、如何改變調(diào)入后的SWF大小:
setProperty ("MC_Name", _xscale, size_x);
setProperty ("MC_Name", _yscale, size_y);
“MC_Name”顧名思義是那個MC的名字了,“_xscale”和“_yscale”是指這個MC的X與Y點
的位置,這個位置是用來控制MC大小的。其“size_x”和“size_y”為設定這個MC具體大
小的數(shù)值。
三、如何改變其位置:
一個簡單的方法是,我們可以來移動那個已給置入MOVIE文件的MC,就像我們用來改變一張
圖的位置那樣用鼠標拖動它。
另一個方法是利用setProperty來進行改變這個MC的位置。
setProperty ("MC_Name", _x, "position_x");
setProperty ("MC_Name", _y, "position_y");
“MC_Name”是MC的名字,“_x”和“_y”指的是X坐標和Y坐標點,而“position_x”與“
position_y”是位置具體的數(shù)值。
希望各位能明白我這個簡單的教程!以上代碼均為FLASH5為標準。
作者: 雨花石
相關文章
AS3.0 實例學習 熟悉tween以及tweenEvent的運用
AS3.0 實例學習 熟悉tween以及tweenEvent的運用...2007-12-12