載入swf自獲舞台的寬高

2021-08-25 03:19:47 字數 2467 閱讀 6828

* 獲得載入swf的舞台大小以縮放到適合尺寸顯示

loaderinfo 的 width 和 height 屬性便是舞台大小。

監聽載入事件:

var t_info : loaderinfo = this.m_loader.contentloaderinfo;

t_info.addeventlistener(event.complete, this.onloaddone);

t_info.addeventlistener(ioerrorevent.io_error, this.onloaderror);

t_info.addeventlistener(progressevent.progress, this.onloadprogress);

顯示載入進度: 

private function onloadprogress(p_e : progressevent) : void

顯示載入的swf:

// 隱藏loading

this.m_loading.hide();

// loaderinfo

var t_info : loaderinfo = this.m_loader.contentloaderinfo;

// 載入的mc

this.m_mc = t_info.content as movieclip;

// 載入mc的舞台寬度

var t_stagew : number = t_info.width;

// 載入mc的舞台高度

var t_stageh : number = t_info.height;

// 載入mc的實際寬度

var t_mcw : number = this.m_mc.width;

// 載入mc的實際高度

var t_mch : number = this.m_mc.height;

// 是否縮放mc適應顯示寬度(載入mc舞台的寬高比是否大於顯示區域寬高比)

var t_scalewidth : boolean = t_stagew / t_stageh > show_w / show_h;

// 縮放比率

var t_scalerate : number = t_scalewidth ? show_w / t_stagew : show_h / t_stageh;

// 縮放mc

this.m_mc.scalex = this.m_mc.scaley = t_scalerate;

// 顯示載入mc的顯示範圍

this.m_mc.scrollrect = new rectangle(0, 0, t_stagew, t_stageh);

// 顯示載入mc

this.addchild(this.m_mc);

// 調整顯示位置

this.m_mc.x = show_x;

this.m_mc.y = show_y;

if (t_scalewidth) this.m_mc.y += (show_h - t_stageh * t_scalerate) / 2;

else this.m_mc.x += (show_w - t_stagew * t_scalerate) / 2;

// 修改幀頻

this.stage.framerate = t_info.framerate;

this.fms.text = string(this.stage.framerate);

// 設定元件

this.sdr.enabled = this.btn1.enabled = this.btn2.enabled = true;

this.sdr.maximum = this.m_mc.totalframes;

// 監聽mc事件

this.addeventlistener(event.enter_frame, this.onenterframe);

this.sdr.addeventlistener(sliderevent.change, this.onchangesdr);

this.sdr.addeventlistener(sliderevent.thumb_press, this.onpresssdr);

this.sdr.addeventlistener(sliderevent.thumb_release, this.onreleasesdr);

private function onchangesdr(p_e : sliderevent) : void

private function onpresssdr(p_e : sliderevent) : void

private function onreleasesdr(p_e : sliderevent) : void

[url=示例演示[/1b][/url]

[1b] | [/1b]

[url=源**[/1b][/url]

複製外部載入的swf

複製外部載入的swf是乙個相對高階的操作,步驟比較多,過程相對複雜,要闡述清楚原理細節需要很大篇幅的文字,因此,這裡我就偷懶不詳細寫說明了,純用 來說明問題,希望對看得懂的朋友起到拋磚引玉的作用。方法1 bytearray深度複製 var byteloader urlloader new urllo...

loadMovie載入外部swf的大小問題

loadmovie載入外部swf的大小問題 也可以引深為 mc的大小問題。首先需要確定的一點,mc大小由視覺化大小確定。再來看loadmovie載入外部swf的大小問題。用loadmovie載入外部的swf,這時,mc獲得長寬,是swf視覺化的長寬。但是了,他的位置卻在0,0 也就是說他是從0,0開...

Flex載入swf的幾種方法

flex載入swf的幾種方法 flex中通常會使用一些動畫,這些需要借助flash的時間軸才可以建立。前面講過兩種方式 1.由flash編譯,由flex寫as,通過庫中元件的鏈結類呼叫。檢視 2.由flash匯出swc,由flex匯入swc。檢視 這篇文章講述使用外部swf的方式。載入方式有很多,這...