2011-03-04 1 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

1

달성하려는 목표가 명확하지 않습니다. 예제에서 Blob 생성자의 Parent 객체에 대한 참조를 전달하고 척도를 public으로 설정해야 할 것입니다. 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

관련 문제