一、目標
1. 在aa.swf中調用bb.swf
2. bb.swf中有一個動態文本 txt1,aa.swf調用後,更改此文本的顯示內容
二、步驟
產生bb.swf檔案
1.建立bb.fla,並在上面加入一個動態文本,名命為"txt1"。 txt1的初始顯示為"hello"
2.Ctrl + Enter運行 bb.fla, 會產生bb.swf檔案
調用bb.swf
1.建立aa.fla,在時間軸加如入代碼
ch();
function ch() {
//調用swf檔案部分
var lr:LoadResource = new LoadResource('bb.swf', 120, 200);
lr.addEventListener(Event.COMPLETE, cc);
addChild(lr);
//調用圖片部分
//var lr:LoadResource = new LoadResource('http://img1.gtimg.com/gamezone/pics/21519/21519683.jpg', -1, -1);
//lr.addEventListener(Event.COMPLETE, cc);
//addChild(lr);
}
function cc(e:Event) {
//改變swf檔案中MC對象的屬性
var mc:MovieClip = MovieClip(e.target.content);
mc.txt1.text = 'bbbb';
//改變圖片的顯示內容
//e.target.content.height = 100;
//e.target.content.width = 100;
//e.target.content.alpha = .5;
}
說明:上面代碼中將圖片調用部分注釋掉了,需要測試調用圖片的,可自行開啟
三、通用調用資源類
package {
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Loader;
import flash.display.MovieClip;
import flash.display.DisplayObject;
import flash.events.*;
import flash.net.URLRequest;
//載入資源(swf jpg png gif)
public class LoadResource extends MovieClip {
private var _url:String; //待請求的URL
private var _height:int; //MC的高度
private var _width:int; //MC的寬度
//本次載入的內容(注意: 1.要在拋出Event.COMPLETE事件後,才能使用 2.載入swf檔案時,該變數是MovieClip; 載入圖片時,該變數是Bitmap)
public var content:DisplayObject;
public function LoadResource(url:String, h:int, w:int) {
_url = url;
_height = h;
_width = w;
configureAssets();
}
private function configureAssets():void {
var loader:Loader = new Loader(); //此處用的是 flash.display.Loader,而不是URLLoader
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeHandler);
loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
var request:URLRequest = new URLRequest(_url);
loader.load(request);
addChild(loader);
}
private function completeHandler(e:Event){
content = e.target.content;
//設定返回對象的寬和高
if(_height != -1){
content.height = _height;
}
if(_width != -1){
content.width = _width;
}
dispatchEvent(e); //拋出一個”Event.COMPLETE“事件,讓調用層可以做一些額外處理
}
private function ioErrorHandler(event:IOErrorEvent):void {
trace("Unable to load image: " + event.text);
}
}
}
四、其它
Loader載入過來的資料類型:
Loader 是用來代替原來MovieClip 的loadMovie 功能,用於載入外部的圖片檔案,SWF檔案。
* 如果載入圖片檔案(jpg,gif,png等)時,Loader.content 得到資料類型是Bitmap 對象;
* 如果載入SWF檔案(flash 9 版本)時,Loader.content 得到資料類型是MovieClip 對象;
* 如果載入SWF檔案(flash 9 以前版本) 時, Loader.content 得到資料類型是AVM1Movie 對象;