首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > Flash >

关于flash as2.0类继承的一个有关问题,请高手帮帮忙

2012-02-05 
关于flash as2.0类继承的一个问题,请高手帮帮忙请看代码:classA{publicvarcomponentX:Numberpublicfuncti

关于flash as2.0类继承的一个问题,请高手帮帮忙
请看代码:
class   A  
{
public   var   componentX:Number;
public   function   A(){
                                  componentX=0;
};
public   function   mm(){
trace( "A.componentX= "+componentX);
}
}
class   B   extends   A
{
        var   componentX:Number;
       
function   B()
        {
              super();
super.mm();//out1:A.componentX=0;
                  componentX   =   6;
trace( "super.componentX   =   "+super.componentX);//out2
              //
        }  
}  
var   a:B=new   B();
以上代码我想实现在out2处输出   super.componentX   =   6;
但实际运行结果是   super.componentX   =   undefined;
请问这是怎么回事?
而下面的例子能实现这个效果,能解释下有什么区别,为什么吗?

class   org.guRuSoft.Bumper.BumpMapper   extends   flash.filters.DisplacementMapFilter
{
        var   componentX;
        function   BumpMapper()
        {
                super();
                trace( "super.componentY   =   "+super.componentY);//out:super.componentY=0;
                componentX   =   2;
                trace( "super.componentY   =   "+super.componentY);//out:super.componentY=2
        }  
}


//****************************************************************************
//   ActionScript   Standard   Library
//   flash.filters.DisplacementMapFilter   object
//****************************************************************************
import   flash.display.BitmapData;
import   flash.geom.Point;

intrinsic   class   flash.filters.DisplacementMapFilter   extends   flash.filters.BitmapFilter
{
var   mapBitmap:BitmapData;
var   mapPoint:Point;
var   componentX:Number;
var   componentY:Number;
var   scaleX:Number;
var   scaleY:Number;
var   mode:String;
var   color:Number;
var   alpha:Number;

public   function   DisplacementMapFilter(mapBitmap:BitmapData,
    mapPoint:Point,
    componentX:Number,
    componentY:Number,
    scaleX:Number,
    scaleY:Number,
    mode:String,
    color:Number,
    alpha:Number);
public   function   clone():DisplacementMapFilter;
}


多谢多谢!等待ing..............

[解决办法]
据我看来,您的把super.method([arg1, ..., argN])和super([arg1, ..., argN])搞混了,只要把程序中的trace( "super.componentX = "+super.componentX);改动成trace( "super.componentX = "+super(componentX));,就能得到你要的结果。

class B extends A
{
var componentX:Number;


function B()
{
super();
super.mm();//out1:A.componentX=0;
componentX = 6;
trace( "super.componentX = "+super(componentX));//out2
//
}
}
[解决办法]
还有CLASS A 中并没有componentX函数,固会输出undefined。

热点排行