[AS3.0]一步一步学ActionScript 3.0(六)

在上一节中我们用到了在库中加载一个元件,我们还有另一个方法来加载一个元件,就是用“反射”的方法,反射就是用库中元件的名字(字符串)去得到我们想要的元件,用代码去把它变成一个类。

 我们在库中建立两个MC,并用上一节的方法将它们导出,名字分别为:Mc1和Mc2,我们要将这两个元件加载到场景上,按照上一节的方法,我们应该这样做:

package  net.smilecn{
    
    
import  flash.display.Sprite;
    
import  flash.display.MovieClip;
    
    
public   class  MainForm  extends  Sprite{
        
        
public  function MainForm(){
            
            var mc1:MovieClip 
=   new  Mc1();
            
            addChild(mc1);
            
            var mc2:MovieClip 
=   new  Mc2();
            
            addChild(mc2);
            
        }
    }
}

那么如果用反射的方法应该怎样做呢,看下面的代码:

package  net.smilecn{
    
    
import  flash.display.Sprite;
    
import  flash.display.MovieClip;
    
import  flash.utils.getDefinitionByName;
    
    
public   class  MainForm  extends  Sprite{
        
        
public  function MainForm(){
            
            var ClassReference:Class 
=  getDefinitionByName( " Mc1 " ) as Class;
            
            var instance:MovieClip 
=   new  ClassReference();
            
            addChild(instance);
            
        }
    }
}

这段代码只加载了Mc1这个元件,而且我们发现代码比上一种方法更复杂一些,那为什么要使用反射这种方法呢,我们在看一段代码:

package  net.smilecn{
    
    
import  flash.display.Sprite;
    
import  flash.display.MovieClip;
    
import  flash.utils.getDefinitionByName;
    
    
public   class  MainForm  extends  Sprite{
        
        
public  function MainForm(){
            
            
for (var i = 1 ;i <= 2 ;i ++ ){
            
                var ClassReference:Class 
=  getDefinitionByName( " Mc " + i) as Class;
            
                var instance:MovieClip 
=   new  ClassReference();
            
                addChild(instance);
            
            }
            
        }
    }
}

我们发现现在这种写法是不是更简单的一种写法,当库中有名字为Mc1,Mc2,Mc3……这种更多的MC时,我们只需要改变循环变量的范围就可以了。

下节继续。

(本教程如需转载请注明出处!)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 9
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值