連續載入3 @ 邦邦的部落格 :: 隨意窩 Xuite日誌
  • 留言 & 文章索引
    1. 沒有新回應!
  • 流量統計
  • 2000年8月,
    加入e21摩奇創意,開始接觸 Flash 4。

    2004年3月,
    參與MMUG,分享與討論。

    2004年11月,
    通過 VUE 的 Flash MX 2004 Developer 認證。

    2005年6月,
    開始寫 Blog 分享自己所學。

    2005年7月,
    通過 MCI(Macromedia Certified Instractor) - Flash MX 2004 Developer 講師認證。

    2005年12月,
    終於於 DCI 拿到證書,正式成為第一屆也是最後一屆 Macromedia 的認證講師......$%&@#

    2006年8月,
    通過 ACI(Adobe Certified Instractor) - FlashLite 1.1 講師認證。

    2007年3月,
    離開待了六年半的摩奇創意,轉換跑道到BenQ。

    2007年5月,
    http://blog.ben.idv.tw

    2007年9月,
    BenQ品牌代工分家,我們變成新BenQ的母公司佳世達Qisda。

    2008年9月,
    因公司採用技術策略的轉變,故離開待了一年半的Qisda。

    2009年2月,
    加入一家低調的軟體公司,低調的開發著 Flash Game,呵呵~







  • 如何使用RSS
    Powered by Xuite
    2005-10-20 10:23 連續載入3
    平均分數:0 顆星    投票人數:0
    我要評分:

    如果你有試作過我寫的 連續載入2 http://blog.xuite.net/ben19770209/ASBeginner/4134236 的話,你可能會注意到,怎麼 MovieClipLoader 的 onLoadProgress() 好像沒有作用似的,不是應該要產生一個文字訊息顯示載入進度的嗎,可是卻沒有看到效果。

    其實我自己也被這個問題困擾了一陣子,也還不知道為何我的 MovieClipLoader 的 onLoadProgress() 會沒有作用,這大約是在我安裝完 Flash 8 測試版之後,就開始遇到了,所以也就是大概這一兩個月的事情,但是我想應該與 Flash 8 沒有什麼關係吧。總之,在找到問題之前,我可以改回不使用 MovieClipLoader,而是自己用 MovieClip 去 loadMovie(),並且自己做偵測,就可以達到我想要的效果了。

    //一直欄多少張相片
    _global.COUNT_PHOTOS_COL = 4;
    //縮圖間距
    _global.T_PHOTO_OFFSET = 5;
    //縮圖大小
    _global.T_PHOTO_SIZE = 70;
    //相片資料
    var PHOTO_DIR:String = "http://pic.bahamut.com.tw/NEWODIN/9/";
    var photoFiles:Array = new Array();
    photoFiles.push("0052192");
    photoFiles.push("0052193");
    photoFiles.push("0052194");
    photoFiles.push("0052195");
    photoFiles.push("0052196");
    photoFiles.push("0052197");
    photoFiles.push("0052198");
    photoFiles.push("0052199");
    photoFiles.push("00521910");
    photoFiles.push("00521911");
    photoFiles.push("00521912");
    photoFiles.push("00521913");
    photoFiles.push("00521914");
    photoFiles.push("00521915");
    photoFiles.push("00521916");
    photoFiles.push("00521917");
    //負責載入的mc
    var photos_mc:MovieClip = this.createEmptyMovieClip("photos_mc", 2);
    for (var i = 0; i< photoFiles.length; i++) {
    	//每一個放圖片的容器
    	var photo_mc:MovieClip = photos_mc.createEmptyMovieClip("photo"+i+"_mc"
    						, photos_mc.getNextHighestDepth());
    	//允許這個容器,能發出自定事件
    	mx.events.EventDispatcher.initialize(photo_mc);
    	//將一些參數定義給這個容器
    	photo_mc.id = i;
    	photo_mc.file = PHOTO_DIR+photoFiles[i];
    	photo_mc.loadImg_mc = photo_mc.createEmptyMovieClip("loadImg_mc", 2);
    	//當別的相片容器 photoLoaded 時,這個 mc 要能接收並處理
    	photo_mc.photoLoaded = function(evtObj:Object) {
    		//當執行權已經到自己身上時,就不用再監聽上一個 mc 的事件了
    		if (this.id >0) {
    			photos_mc["photo"+(i-1)+"_mc"].removeEventListener(this);
    		}
    		//此容器開始載入相片
    		this.loadClip(this.file, this.loadImg_mc);
    	};
    	photo_mc.loadClip = function(file:String, target_mc:MovieClip) {
    		//位置
    		this._x = Math.floor(this.id/_global.COUNT_PHOTOS_COL)
    				*(_global.T_PHOTO_SIZE+_global.T_PHOTO_OFFSET);
    		this._y = Math.floor(this.id%_global.COUNT_PHOTOS_COL)
    				*(_global.T_PHOTO_SIZE+_global.T_PHOTO_OFFSET);
    		//載入
    		target_mc.loadMovie(file);
    		//訊息
    		this.createTextField("progress_txt"
    					, this.getNextHighestDepth()
    					, 0, 0, 10, 5);
    		this.progress_txt.autoSize = true;
    		this.progress_txt.text = "0%";
    		//不斷檢查
    		this.onEnterFrame = function() {
    			//載入進度
    			var loadedBytes:Number = this.loadImg_mc.getBytesLoaded();
    			var totalBytes:Number = this.loadImg_mc.getBytesTotal();
    			var p = Math.round((loadedBytes/totalBytes)*100);
    			this.progress_txt.text = p+"%";
    			if (totalBytes >0 && loadedBytes == totalBytes) {
    				//移除訊息
    				this.progress_txt.removeTextField();
    				//大小
    				var p = _global.T_PHOTO_SIZE
    					/(this._width >this._height
    					? this._width : this._height);
    				this._width *= p;
    				this._height *= p;
    				//點選效果
    				this.onRelease = function() {
    					getURL(this.file, "_blank");
    				};
    				//當這個容器載入相片完成,送出一個 photoLoaded 事件
    				this.dispatchEvent({target:this, type:"photoLoaded"});
    				//移除onEnterFrame
    				this.onEnterFrame = null;
    			}
    		};
    	};
    	if (i >0) {
    		//上一個 mc 以這一個 mc 當作事件監聽者
    		photos_mc["photo"+(i-1)+"_mc"].addEventListener("photoLoaded", photo_mc);
    	}
    }
    //開始載入
    photos_mc.photo0_mc.loadClip(photos_mc.photo0_mc.file, photos_mc.photo0_mc.loadImg_mc);
    

    若是你之前看我的 連續載入2 就已經可以看到載入進度的文字訊息的話,請讓我知道,我才能推測到底是哪裡的問題。或是您也碰過這種情況,而知道問題原因的話,還請您不吝分享您的經驗,蟹蟹。

    邦邦 / Xuite日誌 / 回應(7) / 引用(0) / 好文轉寄
    回應