2011-04-01 3 views
0

스프라이트의 품질에 대해 이해할 수없는 것이있을 수 있지만 왜이 추적이 정의되지 않은 것입니까? item은 무비 클립이고 businessCard는 무비 클립이 포함 된 스프라이트입니다.스프라이트의 자식을 추적 할 수 없습니다

item.addChild (businessCard);// 
trace (item.businessCard);// 
+0

많은 이유가있을 수 있었다. 비즈니스 카드 추적을 시도 했습니까? 그 중 하나가 정의되지 않은 경우 다른 변수를 동일한 값으로 설정하면 당연히 동일한 결과가 제공됩니다. – Bartvbl

답변

2

무비 클립은 동적이므로 점 표기법으로 속성을 만들고 액세스 할 수 있습니다. 스프라이트는 동적이지 않습니다. 아이에 대한 참조를 얻으려면, 당신은 다음과 같은 항목에 액세스 할 수 있습니다

trace(item.getChildByName("businessCard").name)//traces => businessCard 

[편집] 내가 스프라이트 비지니스 카드의 이름이 "들어 간다면"이라고 추측했다.

+0

이 응답은 혼란을 불러옵니다. OP의 예에서 businessCard는 변수 이름 인 Sprite 참조입니다. 코드에서는이 Sprite의 name 속성이 "businessCard"로 설정되어 있다고 가정합니다. 이는 안전한 가정은 아닙니다. –

+0

물론, 나는 스프라이트 이름이 변수 이름과 같다고 가정했다. 나는 당신이 실제 이름이 필요하다는 것을 알아야했다. 심지어 그대는 그 방법 서명이 그것을 분명히 밝혀줍니다 ... – goliatone

+0

사실, 그것은 그것의 색인을 추측하는 것보다 더 좋은 asumption 인 것 같습니다. – goliatone

1

businessCard는 속성이 아닌 항목의 하위 항목입니다. 이런 점 표기법으로는 액세스 할 수 없습니다. item.getChildAt (0)과 같은 것을 사용해야 할 것이다.

package 
{ 
    import flash.display.Sprite; 

    public dynamic class FlexSprite extends Sprite 
    { 
     public function FlexSprite() 
     { 
     } 
    } 
} 

을 그리고 당신의 코드를보다 :

0

나는 수업과 같이 만들 것

var item:FlexSprite = new FlexSprite(); 

//Extra Code 
trace(item.bussinesCard);