2010-07-11 2 views
2

내가 방법을 찾고 에 표시 객체 인스턴스을 동적으로 생성 했습니까? getChildByName ("name").as3 : 손자 사용 방법은? 전의.

trace(_view.getChildByName("name")) //returns name of display object (success) 

trace(_view.getChildByName("name").getChildByName("name2")) //returns error 1061 

답변

3

예, 가능합니다. 문제는 DisplayObjectContainer.getChildByName()DisplayObject 유형을 반환하고 임의의 표시 객체가 DisplayObjectContainer 일 수도 있고 아닐 수도 있다는 것입니다. 당신이 할 수있는 동안 그래서, 먼저 DisplayObjectContainer와에 결과의 유형을 캐스팅해야합니다

내가 위에서 준 예에서, 내가 어떤 아이인지 확인하기 위해 검사를하지 않았다는 것을주의
public static function getGrandChildByName(
     parent : DisplayObjectContainer, 
     child : String, 
     grandchild : String 
) : DisplayObject { 
    var child_obj : DisplayObject = parent.getChildByName(child); 
    var child_container : DisplayObjectContainer = child_obj as DisplayObjectContainer; 
    return child_container.getChildByName(grandchild); 
} 

실제로 존재하며 DisplayObjectContainer ...입니다. 실제 프로덕션 코드에서 이러한 검사를 추가 할 수 있습니다. 이 유형의 무비 클립을 사용하는 경우

또한, 마지막 메모, 당신은 단순히 이름으로 객체를 참조 할 수 있습니다 :

myclip.mc_child.mc_grandchild.gotoAndStop(3); 

단순히 이름으로 요소를 다스 려 간단하고 덜되는 오류가 발생하기 쉬운. 나는 그것을 매우 추천한다.

+0

+1 펑키 한 매개 변수 형식입니다. lol – gMale

+0

@gmale, 당신은 무엇을 의미합니까? –

+0

그냥 바보입니다. 각 함수 매개 변수는 자체 행에 있습니다. 즉, ":"주위의 공백과 결합하여 함수 서명을 "pizzazz!" +1에 대한 pizzazz. – gMale

3

나는 동안 확인 마이클 아론의 대답은 할 수있는 유용한 ... 난 하나 또는 두 개의 항목을 참조 할 필요가있을 때, 나는이 방법을 수행

trace(MovieClip(MovieClip(_view.getChildByName("name")).getChildByName("name2")).name); 

이것은 기본적으로 그냥 표시 객체를 강요됩니다 MovieClip과 같은 기능을 수행하므로 name 속성을 읽고 MoveClip 메서드를 사용할 수 있습니다.

당신이 항목의 전체 디스플레이, 더 복잡한 무언가 위해 수를 참조해야하는 경우 ....

또한 TextField의 하드-에가 닿기에 액세스하는 데 사용할 수 있습니다 .... 추적 (TextField (MovieClip (_view.getChildByName ("name")) .getChildByName ("textfieldName")) .text);

-1
var parentMc1:Object=this.parent.getChildByName('myMc1') as Object; 
var parentInMc2:Object=parentMc1.getChildByName('myMc2') as Object; 

//parent.myMc1.myMc2.gotoAndStop(2); // WRONG 
parentInMc2.gotoAndStop(2); // TRUE 
_______________ 
var parentMc2.. 
var parentMc3.. 
var parentMc4.. 
. 
. 
. 
Limitless mc using