Flash AS教程_as3完美的移花接木使用
package cn {
import flash.display.Sprite;
import flash.events.Event;
import cn.net.LoadSwf;
import cn.data.MyData; //用于替换子swf的类
public class Loader extends Sprite {
private var loadSwf:LoadSwf; //加载主的子swf
public function Loader() {
init();
}
private function init():void {
loadSwf = new LoadSwf("circle.swf");
loadSwf.addEventListener(LoadSwf.COMPLETE,gonComplete);
}
private function gonComplete(e:Event):void {
//加载完显示子swf
//trace(MyData.msg);
addChild(loadSwf.getSwf);
}
}
}
Circle.as的代码
package cn{
import flash.display.MovieClip;
import flash.display.SimpleButton;
import flash.text.TextField;
import flash.events.MouseEvent;
import cn.data.MyData;
public class Circle extends MovieClip {
public function Circle (){
msg_btn.addEventListener(MouseEvent.CLICK,showMsg);
}
public function showMsg(e:MouseEvent){
msg_txt.text = MyData.msg;
}
}
}
会发现,Loader.as和Circle.as中都有import cn.data.MyData;,当然,这不是为了trace而导入的!
第1条中输出“Hello child!”的原因是外框的MyData并没有把子类的MyData覆盖掉,虽然Loader.as这个类中导入了MyData这个类,但是没有使用!
第2条中输出“Hello, parent !”是由于外框执行了trace而把子类的MyData覆盖了,所以子类调用的MyData.msg为外框的MyData.msg。
总结:
1、外框可以把载入的swf中的类覆盖掉;
2、外框必须“使用过”要覆盖的“类”;
3、外框的类路径必须与载入的swf中的类路径相同。
Word教程网 | Excel教程网 | Dreamweaver教程网 | Fireworks教程网 | PPT教程网 | FLASH教程网 | PS教程网 |
HTML教程网 | DIV CSS教程网 | FLASH AS教程网 | ACCESS教程网 | SQL SERVER教程网 | C语言教程网 | JAVASCRIPT教程网 |
ASP教程网 | ASP.NET教程网 | CorelDraw教程网 |