论坛交流
首页办公自动化| 网页制作| 平面设计| 动画制作| 数据库开发| 程序设计| 全部视频教程
应用视频: Windows | Word2007 | Excel2007 | PowerPoint2007 | Dreamweaver 8 | Fireworks 8 | Flash 8 | Photoshop cs | CorelDraw 12
编程视频: C语言视频教程 | HTML | Div+Css布局 | Javascript | Access数据库 | Asp | Sql Server数据库Asp.net  | Flash AS
当前位置 > 文字教程 > Flash AS教程
Tag:2.0,3.0菜鸟,游戏,,cs,技巧,源码,,文本,文字,函数,音乐,随机,拖拽,asp,access,xml,mc,视频教程

as3完美的移花接木使用源码教程

文章类别:Flash AS | 发表日期:2010-4-25 9:10:35

Flash AS教程_as3完美的移花接木使用 

说明:此教程适用于外框加载swf
本人第一次发表教程,表达和书写方面有待改进;如果有什么不明白的,可以发email至skycity@139.com;感谢一路伴我成长的人们!
此次教程分为初级,中级和高级

替换类的使用教程(初级)
原理:框架所导入的类,如果路径与名字与调入的swf所导入的类相同,且框架有使用过这个类,则调入的swf的类被覆盖!
1、在这里,我先给出一个例子,请下载test1.rar的压缩包,打开Loader文件夹中的Loader.fla,按ctrl+enter测试影片。当点击按钮的时候文本框里出现的是“Hello, child !”。
2、打开文档类Loader.as,把第19行的
//trace(MyData.msg);
的注释去掉再测试影片,此时会发现,点击按钮的时候文本框里出现的是“Hello, parent !” 。

3、被调入的swf所导入的类MyData.as中的第三行的msg的值为“Hello, child !”。
4、外框所导入的类MyData.as,第三行的msg的值为“Hello, parent !” 。

Loader.as的代码
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中的类路径相同。
视频教程列表
文章教程搜索
 
Flash AS推荐教程
Flash AS热门教程
看全部视频教程
购买方式/价格
购买视频教程: 咨询客服
tel:15972130058