返回   webstudio Forums > FLASH > Flash8 and Flash MX 2004

發表新主題 回復
 
主題工具 顯示模式
舊 2007-10-03, 12:17 AM   #1
Mirage
高級會員
級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時
 
Mirage 的頭像
 
注冊日期: 07-09
帖子: 169
現金:406金幣
資產:406金幣
Mirage 向著好的方向發展
默認 【原創】創點東東 XML+MovieClipLoader

今天做東西的時候,自我感覺這段程序編的良好,所以發上分享下,適合菜鳥。。。。。
這是一個逐個加載圖片的程序,要是你直接用一個FOR循環全部直接加載的話,不但影響網速而且還耗系統資源,這里我用MovieClipLoader的onLoadComplete來加載下一個圖像,由于圖像的URL地址是存在一個XML文件里。所以先當xml.onLoad觸發的時候復制一個MC,而這個MC的時間線上就是MovieClipLoader類,而onLoadComplete觸發時又讓父級復制一個MC加載圖像,這里的用到了函數遞歸,變量的作用域,這是新手最容易忽略的問題。


在MC上的程序:
var str:String;//開始聲明的這兩個變量我覺得是這個小程序最精華的部分了,它的屬值需要上一級影片來傳遞,也就是xml的節點的屬性值和當圖片加載完后繼續復制這個影片
var fun:Function;
var loadPic:Object = new Object();
var loadpic:MovieClipLoader = new MovieClipLoader();
loadPic.onLoadStart = function(target_mc:MovieClip) {
motionLoad_mc._visible = true;
target_mc._alpha = 0;
};
loadPic.onLoadProgress = function(target_mc:MovieClip, loadedBytes:Number, totalBytes:Number) {
motionLoad_mc.per_txt.text = "Loading Pictrue..."+Math.round(loadedBytes/totalBytes*100)+"%";
};

loadPic.onLoadComplete = function(target_mc:MovieClip) {
atween = new mx.transitions.Tween(target_mc, "_alpha", mx.transitions.easing.Back.easeOut, 0, 100, 2,

true);
fun();//調用函數
motionLoad_mc._visible = false;
};
loadpic.addListener(loadPic);
motionLoad_mc._visible = false;
loadpic.loadClip(str,load_pic_mc);


主時間軸上的腳本:


////////////---頭像----------
System.useCodepage = true;
attachPic_mc.setMask(maskPic_mc);
var portraitXml:XML = new XML();
portraitXml.ignoreWhite = true;
portraitXml.load("portrait.xml");
var port:Array;//變量之所以在這里聲明是因為作用在這整個關鍵楨上
var i:Number = 0;
portraitXml.onLoad = function(success) {
if (success) {
port = portraitXml.firstChild.childNodes;//給變量屬值
var loadP:MovieClip = attachPic_mc.attachMovie("loadPic_mc", "loadPic_mc"+i, i, {_x:i*150});
loadP.str = port[i].attributes.path;//str是一個在loadPic_mc的主時間線上的變量類型為字符串
loadP.fun = loadPor;//fun也是一個在loadPic_mc的主時間線上的變量類型為函數
}
};
function loadPor() {//定義了函數loadPor()其作用就是復制loadPic_mc
if (i>port.length-1) {
return;//我覺得這個判斷很重要,主要就是中斷函數,看了下面的語句就知道,當loadPic_mc時間線上的事件onLoadComplete觸發時都會調用這個函數,在函數的遞歸里一定要有個中斷,否則一直會循環下去
} else {
i++;
trace(i);
var loadP:MovieClip = attachPic_mc.attachMovie("loadPic_mc", "loadPic_mc"+i, i, {_x:i*150});
loadP.str = port[i].attributes.path;//port這個變量的作用域是這個影片的這個時間軸,所以這里能讀的到 而不是undefine了
loadP.fun = loadPor;//這里又會調用這個函數loadPor()
}
}
//////-----------------------
var m = 0;
left_btn.onRelease = function() {
if (m<port.length-1) {
m++;
xtween = new mx.transitions.Tween(attachPic_mc, "_x", mx.transitions.easing.Back.easeOut,

attachPic_mc._x, 0-m*150, 1, true);
} else {
return;//一樣要中斷否則那個attachPic_mc亂跑了,但是這里不加這個else只加if的話也是可以的,但為什么這樣做可能是我的一個習慣吧,良好不良好我也不知道了
}
};
right_btn.onRelease = function() {
if (m>0) {
m--;
xtween = new mx.transitions.Tween(attachPic_mc, "_x", mx.transitions.easing.Back.easeOut,

attachPic_mc._x, 0-m*150, 1, true);//這里用tween類的時候也許你可以把最后結束的位置0-m*150改成attachPic_mc._x-150,但是當鼠標點快的時候它每次移動的距離不一定是150了所以這里用了m這個變量來監督,也許會疑問為什么非得加個0啊,不直接寫成-m*150啊,那個0就是attachPic_mc._x的初始位置,這就設計到了一個程序的擴展性了,要是我在開始就定義一個變量start=attachPic_mc._x,這里直接用start-m*150那么擴展性遠比我現在的這個好!
} else {
return;
}
};
上傳的附件
文件類型: rar book.rar (28.8 KB, 286 次查看)
Mirage 當前離線  
回復時引用此帖
舊 2007-10-03, 02:37 AM   #2
egoldy
沙漠孤鷹
級別:22 | 在線時長:617小時 | 升級還需:4小時級別:22 | 在線時長:617小時 | 升級還需:4小時級別:22 | 在線時長:617小時 | 升級還需:4小時級別:22 | 在線時長:617小時 | 升級還需:4小時
 
egoldy 的頭像
 
注冊日期: 04-07
住址: 北京
帖子: 2835
精華:4
現金:2411金幣
資產:1668861金幣
聲望: 650
egoldy 有著人盡皆知的貢獻和榮耀egoldy 有著人盡皆知的貢獻和榮耀egoldy 有著人盡皆知的貢獻和榮耀egoldy 有著人盡皆知的貢獻和榮耀egoldy 有著人盡皆知的貢獻和榮耀egoldy 有著人盡皆知的貢獻和榮耀
發送 MSN 消息給 egoldy 發送 QQ 消息給 egoldy
默認 回復: 【原創】創點東東 XML+MovieClipLoader

頂一下,呵呵,看來十一期間,只剩下咱們倆了.

http://www.gtaiwj.live/wssign/egoldyfoot.jpg
egoldy 當前離線  
回復時引用此帖
舊 2007-10-03, 09:24 PM   #3
Mirage
高級會員
級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時
 
Mirage 的頭像
 
注冊日期: 07-09
帖子: 169
現金:406金幣
資產:406金幣
聲望: 10
Mirage 向著好的方向發展
默認 回復: 【原創】創點東東 XML+MovieClipLoader

大家都走光了,難得的節假日啊 ^_+ 可惜我倆出不去了 :-)
egoldy 你AS3.0學得怎么樣啊?學好了希望出本書啊,我實在懶得看幫助文檔啊 覺得那樣系統的學的話這一生的時間都不夠 這些東西感覺學會20%就能在80%的場合里用得上
Mirage 當前離線  
回復時引用此帖
舊 2007-10-05, 04:25 PM   #4
boyzone
高級會員
級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時級別:3 | 在線時長:25小時 | 升級還需:7小時
 
注冊日期: 07-05
帖子: 209
現金:141金幣
資產:591金幣
聲望: 10
boyzone 向著好的方向發展
發送 QQ 消息給 boyzone
默認 回復: 【原創】創點東東 XML+MovieClipLoader

loadP.fun = loadPor;
這種方法直接換成 loadPor()直接調用函數多好理解.
boyzone 當前離線  
回復時引用此帖
舊 2007-10-10, 06:23 PM   #5
新秀
江湖新秀
級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時
 
注冊日期: 07-05
住址: 內蒙古
帖子: 104
現金:132金幣
資產:265金幣
聲望: 10
新秀 向著好的方向發展
發送 QQ 消息給 新秀
默認 回復: 【原創】創點東東 XML+MovieClipLoader

收藏啦!!!

我自己做的flash個人網站 www.flash-me.cn
帥哥 新秀 當前離線  
回復時引用此帖
舊 2007-10-13, 08:37 AM   #6
新秀
江湖新秀
級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時
 
注冊日期: 07-05
住址: 內蒙古
帖子: 104
現金:132金幣
資產:265金幣
聲望: 10
新秀 向著好的方向發展
發送 QQ 消息給 新秀
默認 回復: 【原創】創點東東 XML+MovieClipLoader

樓主,你好.感謝你給大家共享的文件,我下載下來研究了很長時間.學到了很多,特別是在對xml應用方面,而且根據自己的想法做了一定的修改,您幫我看一下有什么不足.
我覺得我遍的還是有點拙.肯定能在縮短一下代碼.
大家也幫我看一下,謝謝!
還有就是,大家肯定都知道Fireworks,如果用它處理jpg圖片能縮小好幾倍,就是用優化面板里的選項,用80品質,這樣大家就不必為傳不上附件而煩惱了.
上傳的附件
文件類型: rar book!.rar (15.4 KB, 41 次查看)
帥哥 新秀 當前離線  
回復時引用此帖
舊 2007-10-13, 09:49 AM   #7
Mirage
高級會員
級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時級別:3 | 在線時長:30小時 | 升級還需:2小時
 
Mirage 的頭像
 
注冊日期: 07-09
帖子: 169
現金:406金幣
資產:406金幣
聲望: 10
Mirage 向著好的方向發展
默認 回復: 【原創】創點東東 XML+MovieClipLoader

:-)
明白了 :-) 代碼我看了 只是感覺讓我匪夷所思,所以我也不知道該怎么減減,呵呵,其實我覺得別人說也沒用 自己使勁編吧 等編到一定的程度的后 自然會精煉 功到自然成嘛
你能把別人的代碼擴展一下,值得發揚 因為別人的代碼光看是沒用的 看了理解理解了再修改 擴展 這是一種高效率的學習方法 我覺得
^_+ 你還改進了我的代碼 加了個函數easing();^_^比我以前的代碼簡潔多了
圖片嘛 謝謝你的提醒 以后上傳時盡量做小 畢竟教程用的不需要品質太高的 ^_^謝謝
Mirage 當前離線  
回復時引用此帖
舊 2007-10-14, 08:25 PM   #8
6spc
初級會員
級別:0 | 在線時長:0小時 | 升級還需:5小時
 
注冊日期: 07-10
帖子: 1
現金:2金幣
資產:2金幣
聲望: 10
6spc 向著好的方向發展
默認 回復: 【原創】創點東東 XML+MovieClipLoader

沒明白MC的動作
6spc 當前離線  
回復時引用此帖
舊 2007-10-14, 09:25 PM   #9
love黃家駒
高級會員
級別:5 | 在線時長:51小時 | 升級還需:9小時級別:5 | 在線時長:51小時 | 升級還需:9小時
 
注冊日期: 06-05
住址: lbynet
帖子: 158
現金:361金幣
資產:421金幣
聲望: 10
love黃家駒 向著好的方向發展
默認 回復: 【原創】創點東東 XML+MovieClipLoader

來看看,呵呵
帥哥 love黃家駒 當前離線  
回復時引用此帖
舊 2007-11-03, 05:26 PM   #10
藍狐
狐 域
級別:1 | 在線時長:10小時 | 升級還需:2小時
 
注冊日期: 07-01
帖子: 18
現金:42金幣
資產:42金幣
聲望: 10
藍狐 向著好的方向發展
發送 QQ 消息給 藍狐
默認 回復: 【原創】創點東東 XML+MovieClipLoader

來看看,學習一下啊,好東西!
藍狐 當前離線  
回復時引用此帖
發表新主題 回復

書簽


發帖規則
不可以發表新主題
不可以發表回復
不可以上傳附件
不可以編輯自己的帖子

啟用 BB 代碼
論壇啟用 表情符號
論壇啟用 [IMG] 代碼
論壇禁用 HTML 代碼

論壇跳轉

所有時間均為格林尼治時間 +9。現在的時間是 07:19 PM


copyright by webstudio.com.cn. All Rights Reserved.
Powered by vBulletin® 版本 3.8.3
版權所有 ©2000 - 2019,Jelsoft Enterprises Ltd.
增強包 [3.4] 制作: PHP源動力   官方中文站: vBulletin 中文
浙江6十1开奖结果规则 广西快三官网 最安全的十大理财平台 紫幻河南麻将破解 扑克麻将怎么玩 亿融配资 悠闲山西麻将官网 下载哈尔滨兴动麻将 潍柴重机现状 快乐12选5一 股票配资平台是合法的么 开奖结果查询 全国最知名的股票配资平台 云南十一选五走势图 微乐河南麻将下载 电影股票分析师 快3开奖结果查询安