把EC-CUBE中的商品詳細頁的圖片換成FLASH小相簿

會這樣做是希望可以在原本放圖片的地方可以變成一個小相簿
如果會AJAX可能會更好做吧
但是一方面我沒真寫過AJAX
一方面也想在多多複習一下FLASH練習一下AS3

  1. 更改\html\user_data\packages\mystyle\detail.tal新增一個FLASH的DIV取代原本的圖片,並把商品的附註的圖片顯示拿掉
  2.   
      
      
        
      

  3. 在後台上傳附註圖片(這時前台不會顯示了,但是會把直傳給FLASH)
  4. 主影格AS:
  5. import flash.display.*;
    import flash.events.*;
    stage.scaleMode = StageScaleMode.NO_SCALE;
    stage.align = StageAlign.TOP;
    
    var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters;
    
    this.loaderInfo.addEventListener(Event.COMPLETE,init);
    
    function init(e:Event) {
    	if (paramObj["mainpic"]) {
    		var me:MouseEvent = new MouseEvent("CLICK");
    		loadmainpic(me);
    	}
    	p_btn.buttonMode = true;
    	p_btn.addEventListener(MouseEvent.CLICK,loadmainpic);
    	p_btn.visible = false;
    	for (var i=1; i<=5; i++) {
    		this["p"+i+"_btn"].visible =false;
    		if (paramObj["sub_image"+i]) {
    			p_btn.visible = true;
    			this["p"+i+"_btn"].visible =true;
    			this["p"+i+"_btn"].buttonMode = true;
    			this["p" + i + "_btn"].addEventListener(MouseEvent.CLICK,btnloadpic);
    		}
    	}
    }
    
    function loadmainpic(e:MouseEvent) {
    	ldr_mc.startLoad(paramObj["mainpic"]);
    }
    function btnloadpic(e:MouseEvent) {
    	var num = e.target.name.charAt(1);
    	var str = paramObj["sub_image"+num];
    	ldr_mc.startLoad(str);
    }
    
  6. ldr_mc的主影格AS幾乎是拿上的範例來用:
  7. import fl.transitions.*;
    import fl.transitions.easing.*;
    
    var tf:Function = Elastic.easeInOut;
    var ldr:Loader;
    var req:URLRequest;
    var ldrInfo:LoaderInfo;
    var oldURL:String;
    // 一開始設定為隱藏
    this.visible = false;
    
    function startLoad(url:String) {
    	if(url==oldURL){
    		return;
    	}else{
    		oldURL = url;
    	}
    	if(ldr){
    		this.removeChild(ldr);
    		ldrInfo.removeEventListener(ProgressEvent.PROGRESS, onProgress);
    		ldrInfo.removeEventListener(Event.COMPLETE, onComplete);
    	}
    	this.visible = true;
    	perc_txt.text = "";
    	bg_mc.tw ? bg_mc.tw.stop() : null;
    	bg_mc.th ? bg_mc.th.stop() : null;
    	bg_mc.tw = new Tween
    		(bg_mc, "width", tf, bg_mc.width, 45, 1, true);
    	bg_mc.th = new Tween
    		(bg_mc, "height", tf, bg_mc.height, 45, 1, true);
    
    	bg_mc.tw.addEventListener(TweenEvent.MOTION_FINISH,
    		function(e:TweenEvent){
    			ldr = new Loader();
    			addChild(ldr);
    			ldr.visible = false;
    			req = new URLRequest(url);
    			ldr.load(req);
    			ldrInfo = ldr.contentLoaderInfo;
    			ldrInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
    			ldrInfo.addEventListener(Event.COMPLETE, onComplete);
    		}
    	);
    }
    
    function onProgress(e:ProgressEvent) {
    	var a:uint = e.target.bytesLoaded;
    	var b:uint = e.target.bytesTotal;
    	perc_txt.text =  int(a/b*100).toString();
    }
    
    function onComplete(e:Event):void {
    	var cw:int = e.target.width;
    	var ch:int = e.target.height;
    	perc_txt.text = "";
    	bg_mc.tw ? bg_mc.tw.stop() : null;
    	bg_mc.th ? bg_mc.th.stop() : null;
    	bg_mc.tw = new Tween
    		(bg_mc, "width", tf, bg_mc.width, cw+7, 1, true);
    	bg_mc.th = new Tween
    		(bg_mc, "height", tf, bg_mc.height, ch+7, 1, true);
    	bg_mc.tw.addEventListener(TweenEvent.MOTION_FINISH,
    		function(e:TweenEvent){
    			ldr.x = -ldr.width/2;
    			ldr.y = -ldr.height/2;
    			ldr.visible = true;
    		}
    	);
    }
    

時間不夠要下班了
新來的設計江連さん不喜歡有動態@@
目前也只是堪用而已(所以整個素....)
下禮拜再來細修吧!!