2011-03-04 55 views
0

初始化新對象時,該類如何從父對象訪問變量?AS3什麼是使變量可以訪問子類/對象的正確方法

在這種情況下,Blob需要能夠訪問規模?

public class Parent 
    { 
     protected var scale:int = 32; 

     public function Parent() 
     { 
      var shape = new Blob(15, 55); 
     } 
    } 

-

public class Blob 
{ 
    private var _xp:int 
    private var _yp:int 

    private var _worldX:int; 
    private var _worldY:int; 

    public function Blob(x:int, y:int) 
    { 
     _xp = x; 
     _yp = y; 

     _worldX = _xp * scale; 
     _worldY = _yp * scale; 
    } 

    public function get worldX():int { 
     return _worldX; 
    } 

}

回答

1

延伸關鍵字是你在找什麼。

public class Blob extends Parent{ 
    /* This class is now a subclass of Parent */ 
+0

嗯,我不完全知道什麼我試着去完成在這裏。我並不完全想要Blob的全部功能,而是我現在想的全局變量。 – davivid 2011-03-04 16:23:52

1

這並不完全清楚你想完成什麼。 在您的示例中,您可能需要將對Blob構造函數中的Parent對象的引用傳遞給公共方法。如果Blob和Parent都在顯示列表中並且Parent包含Blob(即Blob是DisplayObject的一些後代並且Parent是DisplayObjectContainer),則可以避免傳遞引用。這樣你可以使用DisplayObject的父屬性來獲得Parent。

public class Parent 
{ 
    public var scale:int = 32; 

    public function Parent() 
    { 
     var shape = new Blob(15, 55, this); 
    } 
} 

-

public class Blob { 
private var _xp:int 
private var _yp:int 

private var _worldX:int; 
private var _worldY:int; 

private var _parent:Parent; 

public function Blob(x:int, y:int, parent:Parent) 
{ 
    _xp = x; 
    _yp = y; 
    _parent = parent; 

    _worldX = _xp * parent.scale; 
    _worldY = _yp * parent.scale; 
} 

public function get worldX():int { 
    return _worldX; 
}} 
+0

好啊,這可能是我需要的。乾杯。 – davivid 2011-03-04 16:25:14

相關問題