頁面設計的flash的功能?

Tags: 功能, 頁面,

做網頁設計的人如何果不運用flash的話,做的效果不會只是靜態。而且頁面的效果會失色一半,其餘Action script(flash的指令碼語言)跟javascript差不多。學起來不會太難,現在我把我收編的指令碼舉例。

方法/步驟

一.影片控制函式 1) gotoandplay 跳轉某一幀播放 2) gotoandstop 跳轉某一幀停止 3) nextframe 轉到下一幀 如 on(press) {nextframe;} 4) prevframe 轉到上一幀 如 on(press) {prevframe;} 5) play 開如向後播放影片 如on(press){play();} 6) stop 停止當前播放位置 如on(press){stop();} 7) nextscene 轉到下一個場景如 on(press){nextscene();} 8) prevscene 轉到上一個場景如 on(press){prevscene();} 9) stopallsounds 停止所有聲音如 on(press){stopallsounds();}

二.濟覽器/網路 1) fscommand("fullscreen", "true"); 全屏顯示 可以加在第一幀中,也可以加在按加在按鈕中.如加在按鈕中則為on(press){fscommand("fullscreen", "true"); } fscommand("quit"); 退出 如果加在幀中程式為fscommand("quit"); 意為當播放此幀自動退出. 若加在銨鈕中則為on (release) {fscommand("quit");}意為當單擊時退出. 2) geturl 定位地址 可以對檔案加,也可以對按鈕加. 對文字加:選中整個文字或單個文字,在文字屬性欄的連結加地址如: 對按鈕加:選中按鈕,點動作,雙擊geturl 結果為: on(press){geturl(" ","_blank");} //blank以新的視窗開啟

3) loadmovie 從外部地直載入影片 可以對按鈕加,也可以對幀加 按鈕加如: on(press){loadmovienum("a.swf","1");} 給幀加:loadmovienum("a.swt","1");

三 、簡單 loading 程式碼: 方法 1 、使用載入位元組數判斷 b=getBytesTotal();// 獲取總的位元組數 a=getBytesLoaded();// 已經下載的位元組數 onEnterFrame=function(){// 進入幀時 , 進行判斷 if (a == b) {// 如果載入的位元組數等於總的位元組數 delete this.onEnterFrame// 刪除進入幀 gotoAndPlay("frame");// 轉入到你要播放的幀 ] else {// 否則 a=getBytesLoaded();// 已經下載的位元組數 percent=int(a/b*100)+"%";// 計算已經下載的百分比 ] } 把上面方法放入第一幀就可以了 方法 2 、使用載入的幀數判斷_ 用 Action 語法地 if frame is loaded 來實現 , 新建一層,這層專門放 Action, 第一幀, ifFrameLoaded (" 場景 ", frame) {// 假如場景中地禎數已經載入 goto and play() // 跳至並播放某某禎 ( 自己設定 ) } 第二幀, O*[email protected] goto and play(" 場景 1", 1)// 跳至並播放第一禎迴圈 再加上一個 load 地 MC 迴圈播放在這兩幀的中間,就 OK 了。

四 、用 flash 做那種彈出的小視窗 分兩步: 給 flash 中的按鈕加入如下 action: on (release) { idd{ getURL ("javascript:MM_openBrWindow('newweb.htm','','width=600,height=100')"); 在 HTML 頁面的 ... 之間加入下面的 javascript 程式碼 .

五 、載入 swf 檔案的控制 在 flash 中可以使用 loadmovie ()和 loadmovienum ()兩個函式控制,具體程式碼如下: 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 類,使用它可以控制播放,下面是一個測試程式碼: var mcl= new MovieClipLoader(); // 定義新的 MovieClipLoader 物件~ var listener = new Object(); // 定義一個新的物件,用來監聽 load 程序 listener.onLoadProgress=function(target,loadedBytes,totalBytes ){ //onloadprogress 載入過程中每當將載入的內容寫入磁碟時呼叫 // 其中 loadedBytes 是已經下載的位元組, totalBytes 是正在加在的檔案的總位元組數 x=loadedBytes y=totalBytes //trace(x+ " bytes 已經 load 了 "); //trace(totalBytes + " bytes 需要 load"); d=x*100/y // 計算已經載入的百分比 ) listener.onLoadInit = function(target) // 當執行載入的剪輯的第一幀上的動作時呼叫 { if(d<100){ // 如果沒有載入完成,不要播放 target.stop(); } else { // 載入完成,可以設定載入的 swf 檔案開始播放的幀數 target.gotoAndPlay(2); } target._width=400 // 設定載入的影片的大小及其位置等相關屬性 target._height=350 target._x=25 target._y=50 } mcl.addListener(listener); // 註冊一個新的監聽物件 mcl.loadClip("***.swf",1)// 使用自定義的物件,載入 swf 檔案

六 、設為首頁 on (release) { getURL("javascript:void(document.links.style.behavior='url(#default#homepage)');voiddocument.links.setHomePage(' http://www.flash8.net/')","_self", "POST"); } 注意要將網頁中的 flash 的 ID 號命名為 "links" 加入收藏夾 on (release) { getURL("javascript:void window.external.AddFavorite(' ;,' 網頁 ');","_self", "POST"); }

七 、如何隨機設定 MC 顏色? 方法 1 、 MC 例項名為 "mc" mycolor=new Color("mc") mycolor.setRGB(random(0xffffff)) 方法 2 、 MC 例項名為 "mc" mycolor=new Color("mc") [ mycolor.setRGB(random(16777215)) 方法 3 、 myColor = new Color(mc); myColorTransform = new Object();// 用 new Object() 為 //setTrandform() 建立引數並隨機取值 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--20 之間的 5 個不重複的隨機數 1): 首先產生一個隨機數 , 放在陣列物件中的第一個位置 2): 產生一個新的隨機數 3): 檢查新產生的隨機數和所有目前已產生的隨機數是否相同 , 若是相同則返回 (2), 否則返回 (4) 4): 將新的隨機數加入陣列物件中下一個陣列元素內 5): 檢查陣列物件個數是否已達到 5 個 , 若是跳到 (6), 否則返回 (2) 6): 結束 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(tot<5); trace(data1);

九 、如何禁止右鍵選單、縮放、全屏 在第一楨中輸入下面命令: 全屏-> FS Command ("fullscreen", true) 禁止縮放-> FS Command ("allowscale", False) 禁止選單-> FS Command ("showmenu", False) fscommand 的方法還是隻能適用於 fp ,在網頁中使用還是必須新增額外的引數 或者用最簡單的一句 as ,在 fp 和網頁中均適用: Stage.showMenu=false;

十、如何實現雙擊效果? 把下面的程式碼放到按鈕上: on (press) { time = getTimer()-down_time; if (time<300) { trace("ok"); } down_time = getTimer(); } 這樣的話,如果都用比較麻煩,寫了一個類來判斷 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 的類,可以重複使用,當然也可以封裝為 2 。 0 的類

十一、如果要在瀏覽器中實現全屏效果,只需在 html 檔案中加入以下程式碼即可: 其中 *.swf 為要呼叫的 FLASH 檔案,記住要將該檔案放在 html 檔案的同一路徑下面。要退出全屏狀態需按 ALT + F4 或退出。 如果在 swf 檔案中,新增關閉按鈕,使用下面的程式碼: on(release) { getURL("javascript :opener=null;window.close();"); }

十二、用 AS 怎麼把影片倒放 function prev(target) { target.gotoAndStop(target._totalframes); target.onEnterFrame = function() { [ if (this._currentframe>1) { this.gotoAndStop(this._currentframe-1); } else { delete this.onEnterFrame; } }; } prev(_root.mc); // 指定要倒退播放的 MC instance name 就可以了

十三 、聲音相關 之前為 MYSOUND 連結一個屬性 1 : mysound=new Sound();// (註釋) mysound 是一個變數名, new Sound 是一個建構函式,表示 mysound 是一個 Sound 物件。 以後可以通過 mysound 來呼叫 Sound 方法 }*HK[ 2: mysound.attachSound("name"); 這裡的 NAME 就是你之前在識別符號裡寫的東西了,對應好了就 OK ! 3: mysound.setVolume(50); 這個是控制聲音播放時的聲音大小,取值在 0 到 100 ,意義大家都知道吧,不會有人認為 0 是最大聲吧 ~ 4:mysound.start(0.01); 這個語句是表示開始播放聲音,()裡的引數表示聲音開始的位置,單位為秒,再來就是迴圈幾次 ~ 比如 mysound.start(30 , 2);// 聲音從 30 秒處開始迴圈 2 次。

十四、倒計時 首先新建檔案以後,在主場景中分別用文字工具建立三個動態文字框,變數名字分別是: leftmin,leftsec,leftmilli, 也就是分別來顯示計時的分鐘、秒數和毫秒數。 然後新建一層,在第一楨寫上如下程式碼即可:(已經做了詳細解釋,相信大部分朋友能夠理解這些程式碼的意思) onLoad = function(){// 當場景載入以後執行 totalmin = 40; totalsec = 60; totalmilli = 100; // 初始化一些變數,在後面的計算中要用到這些變數 } onEnterFrame = function(){// 逐楨執行動作" currentsec = Math.round(getTimer()/1000); // 求出當前影片已經播放的秒數(取整) currentmilli = Math.round(getTimer()/10); // 求出當前影片已經播放的毫秒數(取整) leftsec = totalsec- currentsec;~ // 剩餘的秒數等於總的秒數減去已經播放的秒數 leftmin = totalmin; ^ // 開始分鐘數等於總的分鐘數,開始是不變的 leftmilli = totalmilli - currentmilli; // 剩餘的毫秒數等於總的毫秒數減去已經播放的毫秒數 if(leftsec<10){leftsec = "0"+leftsec} if(leftmin<10){leftmin = "0"+leftmin} if(leftmilli<10){leftmilli = "0"+leftmilli} // 以上三句是當分鐘數、秒數、毫秒數小於 10 的時候,前面加上一個 “0” 。 if(leftmilli<=1){totalmilli+=100;} ); // 當計時剩下的毫秒小於 1 的時候,總秒數再加 100 ,以便下一次重新計時(這裡注意得到的影片播放的毫秒數是一直增加的) if(leftsec == 0){// 當剩餘的秒數等於 0 的時候 totalsec+=60;// 類似上面的解釋,總秒數加 60 totalmin-=1;// 這時候相當於過了 60 秒,所以分鐘數要減 1 if(leftmin ==0){// 當分鐘數等於 0 的時候,計時結束 leftsec = "00"; , leftmin = "00"; leftmilli = "00"; // 將三個計時框都附值為 0 delete onEnterFrame;// 刪除這個逐楨動作,以節省資源 }; } }

十五 、鍵盤控制上下左右 怎樣用鍵盤中的上下左右控制動畫! onClipEvent (load) { speed = 5;// 當 MC 載入時,設定速度為 5 ,也就是說每按一下方向鍵,就移動 5 象素 } onClipEvent (enterFrame) { if (Key.isDown(Key.LEFT)) { this._x -= speed;// 當 ← 被按下時,自身的 X 位置不斷減 speed , X 軸座標不斷減小,也就是不斷向左移動 } if (Key.isDown(Key.RIGHT)) { this._x += speed;// 當 → 被按下時,自身 X 位置不斷加 speed , X 軸座標不斷增加,也就是不斷向右移動 } if (Key.isDown(Key.UP)) { this._y -= speed;// 當 ↑ 被按下時,自身的 Y 位置不斷減 speed , Y 軸座標不斷減小,也就是不斷向上移動 } if (Key.isDown(Key.DOWN)) { this._y += speed;// 當 ↓ 被按下時,自身的 Y 位置不斷加 speed , Y 軸座標不斷增加,也就是不斷向下移動 } } 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._x<0) { mc._x = 0; } if (mc._x>550-mc._width) { mc._x = 550-mc._width; } if (mc._y<0) { mc._y = 0; } if (mc._y>400-mc._height) { mc._y = 400-mc._height; } }

十六、隨機呼叫外部圖片 用 9 個圖片為例子,這個也可以使用 loadmovie 呼叫 num=Math.round(9*Math.random()+1) // 設定隨即數字( 1-9 ) _root.createEmptyMovieClip("pic", 1); // 建立一個空的 PIC MC 用來裝載外面載入的圖片 _root.pic._x = 200; _root.pic._y = 200; // 簡單設定一下 MC 的位置 _root.pic.loadMovie(num+".jpg",1); // 隨即載入外面的圖片

十七 、暫停 可以把要暫停的地方 , 幀數放長啊 或者在當前幀寫 stop(); function pause(){ clearInterval(pauseInterval); play(); pauseInerval=setInterval(pause,1000); //1000 是 1 秒 �定要倒退播放的 MC instance name 就可以了

十八 、怎樣改變某一影片剪輯的播放速度 function go(obj) { with (obj) { nextFrame(); if (_currentframe == _totalframes) { gotoAndStop(1); } } ) go(mc); setInterval(go, 100, mc);

十九 、怎樣呼叫 .chm 檔案 getURL(mk:@MSITStore:F:\...\xxx.chm::/index.htm) otoAndStop(1); } } ) go(mc); setInterval(go, 100, mc);

二十 、隨機生成一個有 30 個數字的陣列,這 30 個數字隨機在 1~500 之間取,且不能重複,而且要亂序的。 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);

相關問題答案