一.影片控制函數(shù)
站在用戶的角度思考問題,與客戶深入溝通,找到巴彥網(wǎng)站設(shè)計(jì)與巴彥網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、主機(jī)域名、雅安服務(wù)器托管、企業(yè)郵箱。業(yè)務(wù)覆蓋巴彥地區(qū)。
1) gotoandplay 跳轉(zhuǎn)某一幀播放
2) gotoandstop 跳轉(zhuǎn)某一幀停止
3) nextframe 轉(zhuǎn)到下一幀 如 on(press) {nextframe;}
4) prevframe 轉(zhuǎn)到上一幀 如 on(press) {prevframe;}
5) play 開如向后播放影片 如on(press){play();}
6) stop 停止當(dāng)前播放位置 如on(press){stop();}
7) nextscene 轉(zhuǎn)到下一個(gè)場(chǎng)景如 on(press){nextscene();}
8) prevscene 轉(zhuǎn)到上一個(gè)場(chǎng)景如 on(press){prevscene();}
9) stopallsounds 停止所有聲音如 on(press){stopallsounds();}
二.濟(jì)覽器/網(wǎng)絡(luò)
1) fscommand("fullscreen", "true"); 全屏顯示 可以加在第一幀中,也可以加在按加在按鈕中.如加在按鈕中則為on(press){fscommand("fullscreen", "true"); }
fscommand("quit"); 退出
如果加在幀中程序?yàn)閒scommand("quit"); 意為當(dāng)播放此幀自動(dòng)退出.
若加在銨鈕中則為on (release) {fscommand("quit");}意為當(dāng)單擊時(shí)退出.
2) geturl 定位地址
可以對(duì)文件加,也可以對(duì)按鈕加.
對(duì)文本加:選中整個(gè)文本或單個(gè)文字,在文本屬性欄的鏈接加地址如:
對(duì)按鈕加:選中按鈕,點(diǎn)動(dòng)作,雙擊geturl 結(jié)果為: on(press){geturl("","_blank");} //blank以新的窗口打開
3) loadmovie 從外部地直加載影片
可以對(duì)按鈕加,也可以對(duì)幀加
按鈕加如: on(press){loadmovienum("a.swf","1");}
給幀加:loadmovienum("a.swt","1");
FLASH動(dòng)作腳本代碼集錦
1 、簡(jiǎn)單 loading 代碼:
方法 1 、使用載入字節(jié)數(shù)判斷
b=getBytesTotal();// 獲取總的字節(jié)數(shù)
a=getBytesLoaded();// 已經(jīng)下載的字節(jié)數(shù)
onEnterFrame=function(){// 進(jìn)入幀時(shí) , 進(jìn)行判斷
if (a == b) {// 如果載入的字節(jié)數(shù)等于總的字節(jié)數(shù)
delete this.onEnterFrame// 刪除進(jìn)入幀
gotoAndPlay("frame");// 轉(zhuǎn)入到你要播放的幀
] else {// 否則
a=getBytesLoaded();// 已經(jīng)下載的字節(jié)數(shù)
percent=int(a/b*100)+"%";// 計(jì)算已經(jīng)下載的百分比
]
}
把上面方法放入第一幀就可以了
方法 2 、使用載入的幀數(shù)判斷_
用 Action 語(yǔ)法地 if frame is loaded 來(lái)實(shí)現(xiàn) , 新建一層,這層專門放 Action,
第一幀,
ifFrameLoaded (" 場(chǎng)景 ", frame) {// 假如場(chǎng)景中地禎數(shù)已經(jīng)載入
goto and play() // 跳至并播放某某禎 ( 自己設(shè)定 )
}
第二幀, O*Np@Q
goto and play(" 場(chǎng)景 1", 1)// 跳至并播放第一禎循環(huán)
再加上一個(gè) load 地 MC 循環(huán)播放在這兩幀的中間,就 OK 了。
2 、用 flash 做那種彈出的小窗口
分兩步:
給 flash 中的按鈕加入如下 action:
on (release) { idd{
getURL ("javascript:MM_openBrWindow('newweb.htm','','width=600,height=100')");
在 HTML 頁(yè)面的 head.../head 之間加入下面的 javascript 代碼 .
script language="javascript"
!-- ~Y
function MM_openBrWindow(theURL,winName,features) { //v2.0
window.open(theURL,winName,features); ;
}
//--
/script
3 、載入 swf 文件的控制
在 flash 中可以使用 loadmovie ()和 loadmovienum ()兩個(gè)函數(shù)控制,具體代碼如下:
loadmovie 載入的控制
_root.createEmptyMovieClip ( "aa" , 1 );
with ( aa ) {
_x = 50 ;
_y = 100 ;
_width=200
_height=300
_alpha=50
loadMovie ( "02.swf" );
}
loadMovieNum 的載入控制:
loadMovieNum ( "02.swf" , 1 );
onEnterFrame = function () {
if ( _level1 ) {
with ( _level1 ) {
_x = 50 ;
_y = 100 ;
}
delete onEnterFrame ;
}
};
在 flash 2004 中,增加了 MovieClipLoader 類,使用它可以控制播放,下面是一個(gè)測(cè)試代碼:
var mcl= new MovieClipLoader(); // 定義新的 MovieClipLoader 對(duì)象~
var listener = new Object(); // 定義一個(gè)新的對(duì)象,用來(lái)監(jiān)聽 load 進(jìn)程
listener.onLoadProgress=function(target,loadedBytes,totalBytes ){ //onloadprogress 加載過程中每當(dāng)將加載的內(nèi)容寫入磁盤時(shí)調(diào)用
// 其中 loadedBytes 是已經(jīng)下載的字節(jié), totalBytes 是正在加在的文件的總字節(jié)數(shù)
x=loadedBytes
y=totalBytes
//trace(x+ " bytes 已經(jīng) load 了 ");
//trace(totalBytes + " bytes 需要 load");
d=x*100/y // 計(jì)算已經(jīng)載入的百分比
)
listener.onLoadInit = function(target) // 當(dāng)執(zhí)行加載的剪輯的第一幀上的動(dòng)作時(shí)調(diào)用
{
if(d100){ // 如果沒有加載完成,不要播放
target.stop();
} else { // 加載完成,可以設(shè)置加載的 swf 文件開始播放的幀數(shù)
target.gotoAndPlay(2);
}
target._width=400 // 設(shè)置加載的影片的大小及其位置等相關(guān)屬性
target._height=350
target._x=25
target._y=50
}
mcl.addListener(listener); // 注冊(cè)一個(gè)新的監(jiān)聽對(duì)象
mcl.loadClip("***.swf",1)// 使用自定義的對(duì)象,加載 swf 文件
4 、設(shè)為首頁(yè)
on (release) {
getURL("javascript:void(document.links.style.behavior='url(#default#homepage)');voiddocument.links.setHomePage(' ')","_self", "POST");
}
注意要將網(wǎng)頁(yè)中的 flash 的 ID 號(hào)命名為 "links"
加入收藏夾
on (release) {
getURL("javascript:void window.external.AddFavorite(' ',' 網(wǎng)頁(yè) ');","_self", "POST");
}
5 、如何隨機(jī)設(shè)置 MC 顏色?
方法 1 、 MC 實(shí)例名為 "mc"
mycolor=new Color("mc")
mycolor.setRGB(random(0xffffff))
方法 2 、 MC 實(shí)例名為 "mc"
mycolor=new Color("mc") [
mycolor.setRGB(random(16777215))
方法 3 、 myColor = new Color(mc);
myColorTransform = new Object();// 用 new Object() 為
//setTrandform() 創(chuàng)建參數(shù)并隨機(jī)取值
myra = random(100);
myrb = random(255);
myga = random(100);
mygb = random(255);
myba = random(100);
mybb = random(255);
myaa = random(100);
myab = random(255);
myColorTransform = {ra:myra, rb:myrb, ga:myga, gb:mygb, ba:myba, bb:mybb, aa:myaa, ab:myab};
myColor.setTransform(myColorTransform);
方法 4 、 mycolor = new Color(mc);
mycolor.setRGB(random(255)16|random(255)8|random(255));
6 、關(guān)于隨機(jī)數(shù)的技巧
用來(lái)產(chǎn)生 6--20 之間的 5 個(gè)不重復(fù)的隨機(jī)數(shù)
1): 首先產(chǎn)生一個(gè)隨機(jī)數(shù) , 放在數(shù)組對(duì)象中的第一個(gè)位置
2): 產(chǎn)生一個(gè)新的隨機(jī)數(shù)
3): 檢查新產(chǎn)生的隨機(jī)數(shù)和所有目前已產(chǎn)生的隨機(jī)數(shù)是否相同 , 若是相同則返回 (2), 否則返回 (4)
4): 將新的隨機(jī)數(shù)加入數(shù)組對(duì)象中下一個(gè)數(shù)組元素內(nèi)
5): 檢查數(shù)組對(duì)象個(gè)數(shù)是否已達(dá)到 5 個(gè) , 若是跳到 (6), 否則返回 (2)
6): 結(jié)束
AS 如下 :
data1=newArray(5);
tot=1;
data1=[tot-1]=random(20-6+1)+6;
do{
gen_data=random(20-6+1)+6;
reapeat_data=0;
for(i=0,i=tot-1;i++){
if(gen_data==data
reapeat_data=1;
break;
}
}
if(reapeat_data==0){
tot++
data[tot-1]=reapeat_data;
}
}while(tot5);
trace(data1);
7 、如何禁止右鍵菜單、縮放、全屏
在第一楨中輸入下面命令:
全屏-> FS Command ("fullscreen", true)
禁止縮放-> FS Command ("allowscale", False)
禁止菜單-> FS Command ("showmenu", False)
fscommand 的方法還是只能適用于 fp ,在網(wǎng)頁(yè)中使用還是必須添加額外的參數(shù)
PARAM Name="menu" value="false"
或者用最簡(jiǎn)單的一句 as ,在 fp 和網(wǎng)頁(yè)中均適用:
Stage.showMenu=false;
8 、如何實(shí)現(xiàn)雙擊效果?
把下面的代碼放到按鈕上:
on (press) {
time = getTimer()-down_time;
if (time300) {
trace("ok");
}
down_time = getTimer();
}
這樣的話,如果都用比較麻煩,寫了一個(gè)類來(lái)判斷
MovieClip.prototype.doubleClick = function() {
this.timer2 = getTimer()/1000;
if ((this.timer2-this.timer)0.25) {
return true;
} else {
this.timer = getTimer()/1000;
return false;
}
};
繼承了 mc 的類,可以重復(fù)使用,當(dāng)然也可以封裝為 2 。 0 的類
9 、如果要在瀏覽器中實(shí)現(xiàn)全屏效果,只需在 html 文件中加入以下代碼即可:
script
javascript :window.open("*.swf","","fullscreen=1,menubar=no,width=800,height=600")
/script
其中 *.swf 為要調(diào)用的 FLASH 文件,記住要將該文件放在 html 文件的同一路徑下面。要退出全屏狀態(tài)需按 ALT + F4 或退出。
如果在 swf 文件中,添加關(guān)閉按鈕,使用下面的代碼:
on(release) {
getURL("javascript :opener=null;window.close();");
}
10 、用 AS 怎么把影片倒放
function prev(target) {
target.gotoAndStop(target._totalframes);
target.onEnterFrame = function() { [
if (this._currentframe1) {
this.gotoAndStop(this._currentframe-1);
} else {
delete this.onEnterFrame;
}
};
}
prev(_root.mc); // 指定要倒退播放的 MC instance name 就可以了
11 、聲音相關(guān)
之前為 MYSOUND 鏈接一個(gè)屬性
1 : mysound=new Sound();// (注釋) mysound 是一個(gè)變量名, new Sound 是一個(gè)構(gòu)造函數(shù),表示 mysound 是一個(gè) Sound 對(duì)象。
以后可以通過 mysound 來(lái)調(diào)用 Sound 方法 }*HK[
2: mysound.attachSound("name"); 這里的 NAME 就是你之前在標(biāo)識(shí)符里寫的東西了,對(duì)應(yīng)好了就 OK !
3: mysound.setVolume(50); 這個(gè)是控制聲音播放時(shí)的聲音大小,取值在 0 到 100 ,意義大家都知道吧,不會(huì)有人認(rèn)為 0 是最大聲吧 ~
4:mysound.start(0.01); 這個(gè)語(yǔ)句是表示開始播放聲音,()里的參數(shù)表示聲音開始的位置,單位為秒,再來(lái)就是循環(huán)幾次 ~ 比如 mysound.start(30 , 2);// 聲音從 30 秒處開始循環(huán) 2 次。
12 、倒計(jì)時(shí)
首先新建文件以后,在主場(chǎng)景中分別用文字工具建立三個(gè)動(dòng)態(tài)文本框,變量名字分別是: leftmin,leftsec,leftmilli, 也就是分別來(lái)顯示計(jì)時(shí)的分鐘、秒數(shù)和毫秒數(shù)。
然后新建一層,在第一楨寫上如下代碼即可:(已經(jīng)做了詳細(xì)解釋,相信大部分朋友能夠理解這些代碼的意思)
onLoad = function(){// 當(dāng)場(chǎng)景加載以后執(zhí)行
totalmin = 40;
totalsec = 60;
totalmilli = 100;
// 初始化一些變量,在后面的計(jì)算中要用到這些變量
}
onEnterFrame = function(){// 逐楨執(zhí)行動(dòng)作"
currentsec = Math.round(getTimer()/1000);
// 求出當(dāng)前影片已經(jīng)播放的秒數(shù)(取整)
currentmilli = Math.round(getTimer()/10);
// 求出當(dāng)前影片已經(jīng)播放的毫秒數(shù)(取整)
leftsec = totalsec- currentsec;~
// 剩余的秒數(shù)等于總的秒數(shù)減去已經(jīng)播放的秒數(shù)
leftmin = totalmin; ^
// 開始分鐘數(shù)等于總的分鐘數(shù),開始是不變的
leftmilli = totalmilli - currentmilli;
// 剩余的毫秒數(shù)等于總的毫秒數(shù)減去已經(jīng)播放的毫秒數(shù)
if(leftsec10){leftsec = "0"+leftsec}
if(leftmin10){leftmin = "0"+leftmin}
if(leftmilli10){leftmilli = "0"+leftmilli}
// 以上三句是當(dāng)分鐘數(shù)、秒數(shù)、毫秒數(shù)小于 10 的時(shí)候,前面加上一個(gè) “0” 。
if(leftmilli=1){totalmilli+=100;} );
// 當(dāng)計(jì)時(shí)剩下的毫秒小于 1 的時(shí)候,總秒數(shù)再加 100 ,以便下一次重新計(jì)時(shí)(這里注意得到的影片播放的毫秒數(shù)是一直增加的)
if(leftsec == 0){// 當(dāng)剩余的秒數(shù)等于 0 的時(shí)候
totalsec+=60;// 類似上面的解釋,總秒數(shù)加 60
totalmin-=1;// 這時(shí)候相當(dāng)于過了 60 秒,所以分鐘數(shù)要減 1
if(leftmin ==0){// 當(dāng)分鐘數(shù)等于 0 的時(shí)候,計(jì)時(shí)結(jié)束
leftsec = "00"; ,
leftmin = "00";
leftmilli = "00";
// 將三個(gè)計(jì)時(shí)框都附值為 0
delete onEnterFrame;// 刪除這個(gè)逐楨動(dòng)作,以節(jié)省資源
};
}
}
13 、鍵盤控制上下左右
怎樣用鍵盤中的上下左右控制動(dòng)畫!
onClipEvent (load) {
speed = 5;// 當(dāng) MC 載入時(shí),設(shè)置速度為 5 ,也就是說(shuō)每按一下方向鍵,就移動(dòng) 5 象素
}
onClipEvent (enterFrame) {
if (Key.isDown(Key.LEFT)) {
this._x -= speed;// 當(dāng) ← 被按下時(shí),自身的 X 位置不斷減 speed , X 軸坐標(biāo)不斷減小,也就是不斷向左移動(dòng)
}
if (Key.isDown(Key.RIGHT)) {
this._x += speed;// 當(dāng) → 被按下時(shí),自身 X 位置不斷加 speed , X 軸坐標(biāo)不斷增加,也就是不斷向右移動(dòng)
}
if (Key.isDown(Key.UP)) {
this._y -= speed;// 當(dāng) ↑ 被按下時(shí),自身的 Y 位置不斷減 speed , Y 軸坐標(biāo)不斷減小,也就是不斷向上移動(dòng)
}
if (Key.isDown(Key.DOWN)) {
this._y += speed;// 當(dāng) ↓ 被按下時(shí),自身的 Y 位置不斷加 speed , Y 軸坐標(biāo)不斷增加,也就是不斷向下移動(dòng)
}
}
onEnterFrame = function () {
if (Key.isDown(Key.LEFT)) {
mc._x -= 20;
}
if (Key.isDown(Key.RIGHT)) {
mc._x += 20;
}
if (Key.isDown(Key.UP)) {
mc._y -= 20;
}
if (Key.isDown(Key.DOWN)) {
mc._y += 20;
}
if (mc._x0) {
mc._x = 0;
}
if (mc._x550-mc._width) {
mc._x = 550-mc._width;
}
if (mc._y0) {
mc._y = 0;
}
if (mc._y400-mc._height) {
mc._y = 400-mc._height;
}
}
14 、隨機(jī)調(diào)用外部圖片
用 9 個(gè)圖片為例子,這個(gè)也可以使用 loadmovie 調(diào)用
num=Math.round(9*Math.random()+1)
// 設(shè)置隨即數(shù)字( 1-9 )
_root.createEmptyMovieClip("pic", 1);
// 創(chuàng)建一個(gè)空的 PIC MC 用來(lái)裝載外面載入的圖片
_root.pic._x = 200;
_root.pic._y = 200;
// 簡(jiǎn)單設(shè)置一下 MC 的位置
_root.pic.loadMovie(num+".jpg",1);
// 隨即載入外面的圖片
15 、暫停
可以把要暫停的地方 , 幀數(shù)放長(zhǎng)啊
或者在當(dāng)前幀寫
stop();
function pause(){
clearInterval(pauseInterval);
play();
pauseInerval=setInterval(pause,1000); //1000 是 1 秒
16 、怎樣改變某一影片剪輯的播放速度
function go(obj) {
with (obj) {
nextFrame();
if (_currentframe == _totalframes) {
gotoAndStop(1);
}
}
)
go(mc);
setInterval(go, 100, mc);
17 、怎樣調(diào)用 .chm 文件
getURL(mk:@MSITStore:F:\...\xxx.chm::/index.htm)
18 、隨機(jī)生成一個(gè)有 30 個(gè)數(shù)字的數(shù)組,這 30 個(gè)數(shù)字隨機(jī)在 1~500 之間取,且不能重復(fù),而且要亂序的。
tmp = new Array();
k = new Array();
for (i=0; i=499; i++) {
tmp = i+1;
}
for (i=0; i=29; i++) {
k = tmp.splice(random(tmp.length-1), 1);
}
trace(k);