Flash加載外部文件創(chuàng)建進(jìn)度條3種方法
互聯(lián)網(wǎng) 發(fā)布時(shí)間:2008-10-07 09:36:14 作者:佚名
我要評(píng)論

加載外部文件的進(jìn)度條(看幫助文檔整理),只適合那些不愿看幫助文檔的新手。我只不過(guò)加了一些注釋。
為加載圖像文件或 SWF 文件創(chuàng)建進(jìn)度條
創(chuàng)建一個(gè)名為 loadImage.fla 的新 Flash 文檔。
選擇"修改">"文檔",在寬度文本框中鍵入 700,在高度文
加載外部文件的進(jìn)度條(看幫助文檔整理),只適合那些不愿看幫助文檔的新手。我只不過(guò)加了一些注釋。
為加載圖像文件或 SWF 文件創(chuàng)建進(jìn)度條
創(chuàng)建一個(gè)名為 loadImage.fla 的新 Flash 文檔。
選擇"修改">"文檔",在寬度文本框中鍵入 700,在高度文本框中鍵入 500,從而更改文檔的尺寸。
在時(shí)間軸中選擇第 1 幀,然后在"動(dòng)作"面板中鍵入下面的代碼: // 創(chuàng)建剪輯來(lái)承載您的內(nèi)容
this.createEmptyMovieClip("progressBar_mc", 0);
progressBar_mc.createEmptyMovieClip("bar_mc", 1);
progressBar_mc.createEmptyMovieClip("stroke_mc", 2);
// 創(chuàng)建進(jìn)度框
with (progressBar_mc.stroke_mc) {
lineStyle(0, 0x000000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
}
//創(chuàng)建進(jìn)度條
with (progressBar_mc.bar_mc) {
beginFill(0xFF0000, 100);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_xscale = 0;
}
//進(jìn)度坐標(biāo)
progressBar_mc._x = 2;
progressBar_mc._y = 2;
//加載進(jìn)度
var mclListener:Object = new Object();
//開始加載時(shí)進(jìn)度條縮放為0
mclListener.onLoadStart = function(target_mc:MovieClip) {
progressBar_mc.bar_mc._xscale = 0;
};
//在加載過(guò)程中進(jìn)度條進(jìn)行縮放
mclListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
progressBar_mc.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
//加載完成后進(jìn)度移除
mclListener.onLoadComplete = function(target_mc:MovieClip) {
progressBar_mc.removeMovieClip();
};
//當(dāng)執(zhí)行加載的剪輯的第一幀上的動(dòng)作時(shí)調(diào)用(這里設(shè)置加載的外部文件的寬高設(shè)置)
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._height = 500;
target_mc._width = 700;
};
// 創(chuàng)建一個(gè)剪輯來(lái)承載圖像。
this.createEmptyMovieClip("image_mc", 100);
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.helpexamples.com/flash/images/gallery1/images/pic3.jpg", image_mc);
為加載 MP3 文件創(chuàng)建進(jìn)度條
創(chuàng)建一個(gè)名為 loadSound.fla 的新 Flash 文檔。
在時(shí)間軸中選擇第 1 幀,然后在"動(dòng)作"面板中鍵入下面的代碼:
//設(shè)置寬高變量
var pb_height:Number = 10;
var pb_width:Number = 100;
//在影片剪輯pb中創(chuàng)建進(jìn)度
var pb:MovieClip = this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建進(jìn)度條
pb.createEmptyMovieClip("bar_mc", pb.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建進(jìn)度條右邊直線
pb.createEmptyMovieClip("vBar_mc", pb.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建進(jìn)度框
pb.createEmptyMovieClip("stroke_mc", pb.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建動(dòng)態(tài)文本
pb.createTextField("pos_txt", pb.getNextHighestDepth(), 0, pb_height, pb_width, 22);
//影片剪輯pb的坐標(biāo)設(shè)置
pb._x = 100;
pb._y = 100;
//畫進(jìn)度條
with (pb.bar_mc) {
beginFill(0x00FF00);
moveTo(0, 0);
lineTo(pb_width, 0);
lineTo(pb_width, pb_height);
lineTo(0, pb_height);
lineTo(0, 0);
endFill();
_xscale = 0;
}
//畫進(jìn)度條右邊直線
with (pb.vBar_mc) {
lineStyle(1, 0x000000);
moveTo(0, 0);
lineTo(0, pb_height);
}
//畫進(jìn)度框
with (pb.stroke_mc) {
lineStyle(3, 0x000000);
moveTo(0, 0);
lineTo(pb_width, 0);
lineTo(pb_width, pb_height);
lineTo(0, pb_height);
lineTo(0, 0);
}
//設(shè)置一些變量
var my_interval:Number;
var my_sound:Sound = new Sound();
//加載聲音自動(dòng)調(diào)用
my_sound.onLoad = function(success:Boolean) {
if (success) {
trace("sound loaded");
}
};
//聲音播放完畢時(shí)調(diào)用
my_sound.onSoundComplete = function() {
clearInterval(my_interval);
trace("Cleared interval");
}
//加載聲音路徑
my_sound.loadSound("http://www.helpexamples.com/flash/sound/song2.mp3", true);
//每隔一定時(shí)間就調(diào)用下面的updateProgressBar函數(shù)
my_interval = setInterval(updateProgressBar, 100, my_sound);
function updateProgressBar(the_sound:Sound):Void {
//設(shè)置聲音進(jìn)度(聲音已播放時(shí)間除以聲音總時(shí)間乘以100)
var pos:Number = Math.round(the_sound.position / the_sound.duration * 100);
//進(jìn)度條進(jìn)行縮放
pb.bar_mc._xscale = pos;
//進(jìn)度條右邊直線的X坐標(biāo)等于進(jìn)度條的寬
pb.vBar_mc._x = pb.bar_mc._width;
//動(dòng)態(tài)文本顯示進(jìn)度
pb.pos_txt.text = pos "%";
}
為加載視頻創(chuàng)建進(jìn)度條
創(chuàng)建一個(gè)名為 flvProgress.fla 的新 FLA 文件。
在"庫(kù)"面板("窗口">"庫(kù)")中,從"庫(kù)"彈出菜單中選擇"新建視頻"。
在"視頻屬性"對(duì)話框中,為視頻元件命名并選擇"視頻"(由 Actionscript 控制)。
單擊"確定",創(chuàng)建一個(gè)視頻對(duì)象。
將該視頻對(duì)象從"庫(kù)"面板拖動(dòng)到舞臺(tái)上,以創(chuàng)建視頻對(duì)象實(shí)例。
使視頻對(duì)象在舞臺(tái)上保持選中狀態(tài),在屬性檢查器("窗口">"屬性">"屬性")中的"實(shí)例名稱"文本框中鍵入 my_video。
使視頻實(shí)例保持選中狀態(tài),在寬度文本框中鍵入 320,在高度文本框中鍵入 213。
在時(shí)間軸中選擇第 1 幀,然后在"動(dòng)作"面板中鍵入下面的代碼:
//創(chuàng)建 NetConnection 對(duì)象,您可以將該對(duì)象與 NetStream 對(duì)象一起使用來(lái)播放視頻流 (FLV) 文件
var connection_nc:NetConnection = new NetConnection();
對(duì)于此參數(shù),必須傳遞 null
connection_nc.connect(null);
創(chuàng)建可用于通過(guò)指定的 NetConnection 對(duì)象播放 FLV 文件的流
var stream_ns:NetStream = new NetStream(connection_nc);
//指定將在舞臺(tái)上的 Video 對(duì)象的邊界內(nèi)顯示的視頻流
my_video.attachVideo(stream_ns);
//播放外部視頻 (FLV) 文件
stream_ns.play("http://www.helpexamples.com/flash/video/typing_short.flv");
//創(chuàng)建動(dòng)態(tài)文本(顯示進(jìn)度)
this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 160, 22);
//創(chuàng)建進(jìn)度影片剪輯
this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
//在進(jìn)度影片剪輯中創(chuàng)建進(jìn)度條
progressBar_mc.createEmptyMovieClip("bar_mc", progressBar_mc.getNextHighestDepth());
//畫進(jìn)度條
with (progressBar_mc.bar_mc) {
beginFill(0xFF0000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_xscale = 0;
}
//在進(jìn)度影片剪輯中創(chuàng)建進(jìn)度框
progressBar_mc.createEmptyMovieClip("stroke_mc", progressBar_mc.getNextHighestDepth());
//畫進(jìn)度框
with (progressBar_mc.stroke_mc) {
lineStyle(0, 0x000000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
}
//每隔一定時(shí)間就調(diào)用下面的checkBytesLoaded函數(shù)
var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns);
function checkBytesLoaded(my_ns:NetStream) {
//進(jìn)度值設(shè)置
var pctLoaded:Number = Math.round(my_ns.bytesLoaded / my_ns.bytesTotal * 100);
//動(dòng)態(tài)文本顯示進(jìn)度
loaded_txt.text = Math.round(my_ns.bytesLoaded / 1000) " of " Math.round(my_ns.bytesTotal / 1000) " KB loaded (" pctLoaded "%)";
//進(jìn)度條進(jìn)行縮放
progressBar_mc.bar_mc._xscale = pctLoaded;
//加載完成后清除間隔
if (pctLoaded>=100) {
clearInterval(loaded_interval);
}
}
為加載圖像文件或 SWF 文件創(chuàng)建進(jìn)度條
創(chuàng)建一個(gè)名為 loadImage.fla 的新 Flash 文檔。
選擇"修改">"文檔",在寬度文本框中鍵入 700,在高度文本框中鍵入 500,從而更改文檔的尺寸。
在時(shí)間軸中選擇第 1 幀,然后在"動(dòng)作"面板中鍵入下面的代碼: // 創(chuàng)建剪輯來(lái)承載您的內(nèi)容
this.createEmptyMovieClip("progressBar_mc", 0);
progressBar_mc.createEmptyMovieClip("bar_mc", 1);
progressBar_mc.createEmptyMovieClip("stroke_mc", 2);
// 創(chuàng)建進(jìn)度框
with (progressBar_mc.stroke_mc) {
lineStyle(0, 0x000000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
}
//創(chuàng)建進(jìn)度條
with (progressBar_mc.bar_mc) {
beginFill(0xFF0000, 100);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_xscale = 0;
}
//進(jìn)度坐標(biāo)
progressBar_mc._x = 2;
progressBar_mc._y = 2;
//加載進(jìn)度
var mclListener:Object = new Object();
//開始加載時(shí)進(jìn)度條縮放為0
mclListener.onLoadStart = function(target_mc:MovieClip) {
progressBar_mc.bar_mc._xscale = 0;
};
//在加載過(guò)程中進(jìn)度條進(jìn)行縮放
mclListener.onLoadProgress = function(target_mc:MovieClip, bytesLoaded:Number, bytesTotal:Number) {
progressBar_mc.bar_mc._xscale = Math.round(bytesLoaded/bytesTotal*100);
};
//加載完成后進(jìn)度移除
mclListener.onLoadComplete = function(target_mc:MovieClip) {
progressBar_mc.removeMovieClip();
};
//當(dāng)執(zhí)行加載的剪輯的第一幀上的動(dòng)作時(shí)調(diào)用(這里設(shè)置加載的外部文件的寬高設(shè)置)
mclListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._height = 500;
target_mc._width = 700;
};
// 創(chuàng)建一個(gè)剪輯來(lái)承載圖像。
this.createEmptyMovieClip("image_mc", 100);
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://www.helpexamples.com/flash/images/gallery1/images/pic3.jpg", image_mc);
為加載 MP3 文件創(chuàng)建進(jìn)度條
創(chuàng)建一個(gè)名為 loadSound.fla 的新 Flash 文檔。
在時(shí)間軸中選擇第 1 幀,然后在"動(dòng)作"面板中鍵入下面的代碼:
//設(shè)置寬高變量
var pb_height:Number = 10;
var pb_width:Number = 100;
//在影片剪輯pb中創(chuàng)建進(jìn)度
var pb:MovieClip = this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建進(jìn)度條
pb.createEmptyMovieClip("bar_mc", pb.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建進(jìn)度條右邊直線
pb.createEmptyMovieClip("vBar_mc", pb.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建進(jìn)度框
pb.createEmptyMovieClip("stroke_mc", pb.getNextHighestDepth());
//在影片剪輯pb中創(chuàng)建動(dòng)態(tài)文本
pb.createTextField("pos_txt", pb.getNextHighestDepth(), 0, pb_height, pb_width, 22);
//影片剪輯pb的坐標(biāo)設(shè)置
pb._x = 100;
pb._y = 100;
//畫進(jìn)度條
with (pb.bar_mc) {
beginFill(0x00FF00);
moveTo(0, 0);
lineTo(pb_width, 0);
lineTo(pb_width, pb_height);
lineTo(0, pb_height);
lineTo(0, 0);
endFill();
_xscale = 0;
}
//畫進(jìn)度條右邊直線
with (pb.vBar_mc) {
lineStyle(1, 0x000000);
moveTo(0, 0);
lineTo(0, pb_height);
}
//畫進(jìn)度框
with (pb.stroke_mc) {
lineStyle(3, 0x000000);
moveTo(0, 0);
lineTo(pb_width, 0);
lineTo(pb_width, pb_height);
lineTo(0, pb_height);
lineTo(0, 0);
}
//設(shè)置一些變量
var my_interval:Number;
var my_sound:Sound = new Sound();
//加載聲音自動(dòng)調(diào)用
my_sound.onLoad = function(success:Boolean) {
if (success) {
trace("sound loaded");
}
};
//聲音播放完畢時(shí)調(diào)用
my_sound.onSoundComplete = function() {
clearInterval(my_interval);
trace("Cleared interval");
}
//加載聲音路徑
my_sound.loadSound("http://www.helpexamples.com/flash/sound/song2.mp3", true);
//每隔一定時(shí)間就調(diào)用下面的updateProgressBar函數(shù)
my_interval = setInterval(updateProgressBar, 100, my_sound);
function updateProgressBar(the_sound:Sound):Void {
//設(shè)置聲音進(jìn)度(聲音已播放時(shí)間除以聲音總時(shí)間乘以100)
var pos:Number = Math.round(the_sound.position / the_sound.duration * 100);
//進(jìn)度條進(jìn)行縮放
pb.bar_mc._xscale = pos;
//進(jìn)度條右邊直線的X坐標(biāo)等于進(jìn)度條的寬
pb.vBar_mc._x = pb.bar_mc._width;
//動(dòng)態(tài)文本顯示進(jìn)度
pb.pos_txt.text = pos "%";
}
為加載視頻創(chuàng)建進(jìn)度條
創(chuàng)建一個(gè)名為 flvProgress.fla 的新 FLA 文件。
在"庫(kù)"面板("窗口">"庫(kù)")中,從"庫(kù)"彈出菜單中選擇"新建視頻"。
在"視頻屬性"對(duì)話框中,為視頻元件命名并選擇"視頻"(由 Actionscript 控制)。
單擊"確定",創(chuàng)建一個(gè)視頻對(duì)象。
將該視頻對(duì)象從"庫(kù)"面板拖動(dòng)到舞臺(tái)上,以創(chuàng)建視頻對(duì)象實(shí)例。
使視頻對(duì)象在舞臺(tái)上保持選中狀態(tài),在屬性檢查器("窗口">"屬性">"屬性")中的"實(shí)例名稱"文本框中鍵入 my_video。
使視頻實(shí)例保持選中狀態(tài),在寬度文本框中鍵入 320,在高度文本框中鍵入 213。
在時(shí)間軸中選擇第 1 幀,然后在"動(dòng)作"面板中鍵入下面的代碼:
//創(chuàng)建 NetConnection 對(duì)象,您可以將該對(duì)象與 NetStream 對(duì)象一起使用來(lái)播放視頻流 (FLV) 文件
var connection_nc:NetConnection = new NetConnection();
對(duì)于此參數(shù),必須傳遞 null
connection_nc.connect(null);
創(chuàng)建可用于通過(guò)指定的 NetConnection 對(duì)象播放 FLV 文件的流
var stream_ns:NetStream = new NetStream(connection_nc);
//指定將在舞臺(tái)上的 Video 對(duì)象的邊界內(nèi)顯示的視頻流
my_video.attachVideo(stream_ns);
//播放外部視頻 (FLV) 文件
stream_ns.play("http://www.helpexamples.com/flash/video/typing_short.flv");
//創(chuàng)建動(dòng)態(tài)文本(顯示進(jìn)度)
this.createTextField("loaded_txt", this.getNextHighestDepth(), 10, 10, 160, 22);
//創(chuàng)建進(jìn)度影片剪輯
this.createEmptyMovieClip("progressBar_mc", this.getNextHighestDepth());
//在進(jìn)度影片剪輯中創(chuàng)建進(jìn)度條
progressBar_mc.createEmptyMovieClip("bar_mc", progressBar_mc.getNextHighestDepth());
//畫進(jìn)度條
with (progressBar_mc.bar_mc) {
beginFill(0xFF0000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
endFill();
_xscale = 0;
}
//在進(jìn)度影片剪輯中創(chuàng)建進(jìn)度框
progressBar_mc.createEmptyMovieClip("stroke_mc", progressBar_mc.getNextHighestDepth());
//畫進(jìn)度框
with (progressBar_mc.stroke_mc) {
lineStyle(0, 0x000000);
moveTo(0, 0);
lineTo(100, 0);
lineTo(100, 10);
lineTo(0, 10);
lineTo(0, 0);
}
//每隔一定時(shí)間就調(diào)用下面的checkBytesLoaded函數(shù)
var loaded_interval:Number = setInterval(checkBytesLoaded, 500, stream_ns);
function checkBytesLoaded(my_ns:NetStream) {
//進(jìn)度值設(shè)置
var pctLoaded:Number = Math.round(my_ns.bytesLoaded / my_ns.bytesTotal * 100);
//動(dòng)態(tài)文本顯示進(jìn)度
loaded_txt.text = Math.round(my_ns.bytesLoaded / 1000) " of " Math.round(my_ns.bytesTotal / 1000) " KB loaded (" pctLoaded "%)";
//進(jìn)度條進(jìn)行縮放
progressBar_mc.bar_mc._xscale = pctLoaded;
//加載完成后清除間隔
if (pctLoaded>=100) {
clearInterval(loaded_interval);
}
}
相關(guān)文章
flash cs6鼠標(biāo)跟隨效果實(shí)現(xiàn)代碼分享
flash cs6想要實(shí)現(xiàn)鼠標(biāo)跟隨效果?該怎么制作呢?今天我們就來(lái)看看使用as2.0實(shí)現(xiàn)鼠標(biāo)跟隨效果的教程,需要的朋友可以參考下2019-05-19- Flash cs6怎么使用代碼輸入中英文文本?Flash cs6中可以使用文字工具直接輸入文本,也可以使用代碼來(lái)輸入文本,該怎么使用代碼輸入文本呢?請(qǐng)看下文詳細(xì)的教程,需要的朋友2018-03-11
- flash as3.0抽象類怎么定義? as3.0中有很多抽象類,該怎么定義抽象類和抽象方法呢?下面我們就來(lái)看看簡(jiǎn)單的例子,需要的朋友可以參考下http://www.dbjr.com.cn/softs/408402.2018-02-28
flash cs6中怎么使用ActionScript3.0?
flash cs6中怎么使用ActionScript3.0?flash cs6中想要使用ActionScript3.0功能,該怎么使用呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2018-01-25Flash中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?
本教程給大家分享一個(gè)Flash小教程,教大家在Flash CS6中怎么實(shí)現(xiàn)鼠標(biāo)點(diǎn)擊決定圖像位置?方法很簡(jiǎn)單,感興趣的朋友歡迎前來(lái)一起分享學(xué)習(xí)2018-01-12Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置?
本教程教腳本之家的ActionScript教程學(xué)習(xí)者在Flash中如何用代碼將圖片放在自己想要的舞臺(tái)位置,教程講解的詳細(xì),感興趣的朋友歡迎前來(lái)分享學(xué)習(xí)2017-11-20在Flash CS6中使用with函數(shù)繪制背景圖教程
本教程教腳本之家的ActionScript教程學(xué)習(xí)者如何在Flash CS6中使用with函數(shù)繪制背景圖?教程一步步講解的挺詳細(xì),方法也不難,非常適合Flash新手入門學(xué)習(xí)2017-11-18Flash怎么設(shè)置元件坐標(biāo)?flash使用代碼設(shè)置元件的坐標(biāo)的教程
Flash怎么設(shè)置元件坐標(biāo)?flash中導(dǎo)如的元件需要添加坐標(biāo),該怎么定位元件坐標(biāo)呢?下面我們就來(lái)看看flash使用代碼設(shè)置元件的坐標(biāo)的教程,需要的朋友可以參考下2017-10-11Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫?
Flash怎么制作來(lái)回?fù)u擺的花朵的動(dòng)畫?Flash中想要給花朵制作一段搖擺的動(dòng)畫效果,該怎么制作呢?下面我們就來(lái)看看詳細(xì)的教程,很簡(jiǎn)單,需要的朋友可以參考下2017-05-23- Flash怎么制作流動(dòng)七彩色的文字?想要讓文字動(dòng)起來(lái),該怎么使用flash給文字制作一個(gè)流動(dòng)七彩色的動(dòng)畫呢?下面我們就來(lái)看看詳細(xì)的教程,需要的朋友可以參考下2017-04-23