在flash lite中要讀入圖片有什麼辦法?
最單純就是藉由邦邦大哥寫的這個class
然後動態讀入(預設情況是在讀取一個有寫有url=”pic.jpg”的文字檔後去載入圖片):
var loader:MyLoader = MyLoader.getLoader(this); loader.addEventListener("onLoadInit", Delegate.create(this, loader_onLoadInit)); var send_lv:LoadVars = new LoadVars(); var result_lv:LoadVars = new LoadVars(); result_lv.onLoad = function(success:Boolean) { if (success) { getPic(result_lv.url,this); } else { trace_txt.text = "Error connecting to server."; } }; function getPic(url:String,mov:MovieClip){ var container:MovieClip = mov.createEmptyMovieClip("pic_" + num, 10+num); loader.loadMovie(url,container); } function loader_onLoadInit(evtObj:Object) { var pic:MovieClip = evtObj.target; //pic._x = 10; } send_lv.sendAndLoad("link_url.php", result_lv); |
當然由於日本的手機有限制swf不能超出100kb(好像是docomo)
所以要載入的圖片要先算好總kb數….
而且gif檔會有問題
我是都用jpg解決…..
這方式的問題在哪?
au的手機行不通!!!!!不知道為啥?它就是不run!!!!
所以很不幸的必須找替代方案
後來發現這個方法:swf editor for php
就是利用php把已經做好的swf中的圖片換掉
比較麻煩的是server要設定一下
然後利用他寫好的查詢網頁調出swf的圖片編號
之後參考這一篇套用,結果!!
或是用我寫的function參考一下也行~
replace_swfimg("before.swf","pic.jpg",61,"after.swf"); function replace_swfimg($swf_filename,$jpeg_filename,$image_id,$res_filename){ $swfdata = file_get_contents($swf_filename); $jpegdata = file_get_contents($jpeg_filename); if (! empty($alpha_filename)) { $alphadata = file_get_contents($alpha_filename); } $obj = new SWFEditor(); if ($obj->input($swfdata) == false) { fprintf(STDERR, "input failed\n"); exit(1); } if (empty($alphadata)) { $result = $obj->replaceJpegData($image_id, $jpegdata); } else { $result = $obj->replaceJpegData($image_id, $jpegdata, $alphadata); } if ($result == false) { fprintf(STDERR, "replaceJpegdata($image_id, ...) failed\n"); exit(1); } if (!($fp = fopen($res_filename,'w'))) { return; } $size = fwrite($fp, $obj->output()); } |