麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

as腳本之loadMovie完全實現教程

2024-09-12 17:50:46
字體:
來源:轉載
供稿:網友
使用loadMovie可以動態的載入外部文件,從而減少主文件的體積,有利于網上下載,以及對各項子文件的修改,更換。如果沒有做過FLASH網頁,可以看看這個FLASH網頁的基本組成情況,見圖2-2-1

只需要把圖中的主文件和子文件用比如ftp工具傳到自己的空間上,就可以輕松的實現只下載主文件,如果需要瀏覽的子文件就可以單獨下載,可以想想,如果你的整個FLASH網頁不分主次,全部統一個FLASH,做成了幾M甚至10多M,那么有誰愿意等著看你的網頁呢?除非你自己。

于是使用loadMovie就顯得很重要了。現在就讓我們從基礎開頭,然后去分析使用loadMovie所涉及到的具體問題吧。使用loadMovie有兩種基本的方法:(一)將外部swf文件載入到某一層上。(二)將外部swf文件載入到時間軸的某個影片剪輯中。對這兩種方法的使用,用圖表示更加直觀些。見圖2-2-2

第二種方法又可以這樣寫:_root.mc.loadMovie(“a1.swf”);如果a1的后綴名為 jpg那么載入的是外部圖片。載入圖片與載入swf文件的道理是一樣的,就不贅述。說到這里還比較空洞,做一個實例來看看。

一、新建一個文件夾,任意取一個名字 比如:mywangye

二、做一個Flash發布成swf文件并且取名字為a1,保存在mywangye這個目錄中,這個a1就是我們要載入的子文件。

三、然后做主文件,由于我們是做最簡單的,所以什么也不畫,就在這個主文件的第一楨,寫 loadMovie(“a1.swf”,1) 同樣將這個文件保存在mywangye目錄中,取個名字叫index

四、測試效果,源文件見本文后的打包中的01文件夾

然后用上面圖中的第2種語法,繼續做一個,注意了,第二種方法需要在舞臺上放一個mc并且取一個實例名,或者創建一個空的MC。做了上面的小實驗后,我們可以總結些什么結論呢?如果僅僅是得到可以加載外部文件這么一條結論的話,那么就太膚淺了。可以讓我們想到:被加入進來的外部文件的坐標問題;長寬問題;外部文件比較大,造成的加載延時問題;如何訪問被加載進來的swf的問題;不要加載了,卸載問題…..這些問題我們如果不研究下,真正在做網頁的時候,會遇到很多麻煩的。

由上面的最簡單的加載我們可以得到這樣的結論:(1)如果采用加載到層上的,加載進來后默認注冊點是舞臺的左上角;如果采用加載到mc里面的,那么默認注冊點是MC的注冊點。如果MC的注冊點是左上角,那么被加載進來的SWF文件就與MC的左上角對準;如果MC的注冊點是中心,那么加載進來的SWF就把左上角與MC的中心對齊。(2)被加載進來的MC保留原來的長寬比例。

問題一:如何控制被加載進來的SWF文件的坐標和長寬比例大小?

控制被加載進來的SWF文件控制其長寬要采用onEnterFrame,比如:

on (press) {
loadMovie("a2.swf", "_root.mymc");
onEnterFrame = function () {
_root.mymc._x = 0;
_root.mymc._y = 0;
_root.mymc._width = 330;
_root.mymc._height = 240;
};
}

為什么用 onEnterFrame呢?因為被加載進來的的過程中,有點延時,如果沒有onEnterFrame語句,那么語句讀取一次就不讀取了,然而讀取了這一次之后,還沒有加載進來,所以就會導致坐標大小設置無效。同樣,如果加載到層上,也是這樣的。

on (press) {
loadMovie("a1.swf", 1);
onEnterFrame = function () {
_level1._x = 17;
_level1._y = 30;
_level1._width = 330;
_level1._height = 240;
};
}

請注意這兩種方法,第一種,把外部的a2加載到mymc中,加在進來后,a2就自動的替換了mymc,我們直接設置mymc的屬性就設置了被加載進來的swf的屬性。第二種方法,_level是對于加載到時間軸上的電影的引用,加載到第2層就是_level2;加載到第3層就是_level3。

問題之二:如何實現點擊按鈕加載一個外部SWF文件,并且要顯示加載的下載進度呢?

有兩個方法來實現這個效果,其一:把加載londing寫在主文件中,其二,被加載的子SWF文件有自己的londing。現在分別給予說明。

其一:在主文件中寫londing

外部子swf文件名為a1,主文件中有一個動態文本框名為loadText,一個按鈕名為bbt,現在把loadMovie和londing寫在楨上。

_root.bbt.onPress = function() {
_root.createEmptyMovieClip("mc", 10);
mc.loadMovie("a1.swf");
mc._visible = false;
_root.bbt.onEnterFrame = function() {
var l = mc.getBytesLoaded();
var t = mc.getBytesTotal();
var getPercent = l/t;
loadText = Math.round(getPercent*100)+"%";
if (l>0 && l>=t) {
mc._visible = true;
delete this.onEnterFrame;
}
mc._x = 10;
mc._y = 10;
mc._width =440;
mc._height = 320;
};
};

其二:子文件中有自己的londing

這個寫法與前面說的londing一樣,只是注意一個問題就是注意路徑的問題,比如這樣寫:

第一禎

loaded = getBytesLoaded();
total = getBytesTotal();
lts = Math.round((loaded/total)*100);
wenben = lts+"%";

第二禎

if (lts == 100) {
gotoAndStop(3);
} else {
gotoAndPlay(1);
}

和前面的londing中介紹的比較,看出不同之處沒有呢?僅僅是去掉了_root因為被加載后,外部SWF文件就相當于主文件中的一個MC 有了_root 就是指向主文件的_root 了,當然會顯示錯誤。

問題三:我想在舞臺上畫一個屏幕,然后點擊一個按鈕就載入一個外部swf進行播放該怎樣做呢?

那么我們就來一起做一個相冊吧。當主文件載入后,單擊按鈕就載入一個外部swf 文件,并且都有londing顯示。首先我們做好以下準備工作:(1)準備幾張圖片,現在我們準備7張,6個子文件一個一張,主文件用一張。(2)主文件舞臺大小為了適應網頁的需要,設置為770*420。子文件舞臺大小設置為512*384,這樣就不需要載入后控制大小了,方便些(其實我們應當這樣,省去一些麻煩。

一、制作子文件。每個都用來顯示圖片,第一和第二禎寫londing,第三禎~~二十禎根據自己的愛好做點亮度變化,以產生動感,最后一禎寫上stop()。第一和第二禎的londing如下

第一禎

loaded = getBytesLoaded();
total = getBytesTotal();
lts = Math.round((loaded/total)*100);
wenben = "數據下載中 "+lts+"%";

第二禎

if (lts == 100) {
gotoAndPlay(3);
} else {
gotoAndPlay(1);
}

就這樣如法炮制的制作6個,分別命名為b1…..b6都發布成swf文件。保存在一個文件夾中。

二、制作主文件

第一禎用來寫londing,第2禎放一些像屏幕一樣的東西,和按鈕,為了增加效果,放一個音樂在時間軸上。

第一禎的londing//由于前面已經說得多了,就不贅述了

stop();
i = 0; ,
onEnterFrame = function () {
// 使用不斷觸發的事件
loaded = _root.getBytesLoaded();
total = _root.getBytesTotal();
var aa = Math.round((loaded/total)*100);
_root.dongtai.wenbens = aa+"%";
_root.dongtai._x = 188+aa*3;
_root.bb._width = aa*3;
if (aa>=100) {
// 檢測到滿足條件就跳出來,否則繼續循環
_root.gotoAndStop(2);
delete this.onEnterFrame;
// 使用delete的目的是當完成下載后銷毀onEnterFrame事件,以節約資源的消耗。
}
};

第2禎的按鈕上的AS

on (press) {
_root.i++;
if (i == 7) {
i = 6;
}
loadMovie("b"+i+".swf", "_root.mc");
_root.tishi = "第"+i+"張圖片";
}

偷點懶,就不詳細的贅述其含義, 我們也可以用很長的語句來實現相同的效果,這種寫法是對AS的一種濃縮。

具體情況請參看原文件。

問題四:我想逐次載入多個外部文件,當第一個載入播放完畢后,立即載入第2個,第二個播放完畢后,立即載入第3個 ,……,直到結束。怎么辦?

首先對這種提問,我們先要質問一下提問的人,這樣做有什么意義? 與其這樣,不如全部做到一個SWF中,因為每次調用一個外部SWF的時候,需要一定的時間來等待下載。當然,如果你想制作一個連續劇,播放完了一個后,用londing下一集的londing畫面顯示“正在載入下集,請稍候”那么還是可以的。

方法很簡單:依照問題三的原文件,稍微修改,去掉一個按鈕,用一個按鈕載入第一個,然后再第一個的最后一禎放個調用主文件中的函數即可。

按鈕:

on (press) {
loadMovie("b1.swf", "_root.mc");
}

主文件定義的函數

function go2() {
loadMovie("b2.swf", "_root.mc");
}
function go3() {
loadMovie("b3.swf", "_root.mc");
}
function go4() {
loadMovie("b4.swf", "_root.mc");
}
function go5() {
loadMovie("b5.swf", "_root.mc");
}
function go6() {
loadMovie("b6.swf", "_root.mc");
}

第一個b1 SWF的最后一禎_root. go2(),第二個外部SWF的最后一禎 _root.go3()………..
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 中国老女人一级毛片视频 | 自拍亚洲伦理 | 色吧综合网| 毛片在线免费 | 午夜视频在线 | 成人国产精品一区二区毛片在线 | 正在播放91精 | 大学生a级毛片免费视频 | 康妮卡特欧美精品一区 | 天天看天天摸天天操 | 羞羞网站入口 | chinese xxxx hd pron8 tube | 久久精品亚洲国产奇米99 | 91免费视频版 | 国产一级午夜 | 欧美成人视| 亚洲一级簧片 | 久久成人精品视频 | 国产papa| 欧美成人午夜 | a免费视频 | 91看片在线播放 | 欧洲成人一区二区 | 欧美精品成人一区二区三区四区 | 深夜福利久久久 | 黄色网址电影 | 黄色伊人网站 | 毛片在线免费视频 | 日日噜噜噜夜夜狠狠久久蜜桃 | 久久精品二区 | 成av人在线观看 | 久久国产精品99国产 | 福利在线免费 | 欧美一级毛片大片免费播放 | 亚洲精品久久久久www | 欧美日本不卡 | 黄色片免费看网站 | 久久精品一区二区三区国产主播 | 亚洲一级片免费观看 | 极品一级片 | 国色天香综合网 |