this
에게 현재의 클래스를 표시하는 범위 표시기입니다 감사합니다. 그래서 this["cardPrint"+x]
실제로 그 이름을 가진 변수를 찾기 위해 노력하고있다,하지만 당신은 이미 참조하는 변수를 선언 할 수 없습니다.
당신이 원하는 것을 할 수있는 유일한 방법은 다음과 같이이다 :
public dynamic class Foobar
{
public function Foobar()
{
for(var x:int = 1; x <= 10; x++)
{
this["cardPrint"+x] = new this["card_"+x]();
this.addChild(this["cardPrint"+x]);
this["cardPrint"+x].addEventListener(MouseEvent.CLICK, this["click_"+x]);
}
}
}
핵심 클래스 dynamic
하고 있습니다. 즉, 런타임에 변수 이름을 생성하고 scope["varName"]
구문을 사용하여 문자열의 형태를 만들 수 있습니다. 당신이 플래시 Pro의 타임 라인에이 일을하는 경우 나는 당신이 느낌을 얻을로, 이것은 단순히 당신이 그것을 원하는 방식으로 수 없습니다. 루프에서 객체를 생성하고 위에 설명 된 구문을 사용하는 대신 이러한 방법으로 액세스 할 수 있도록 배열에 객체를 저장하는 것이 좋습니다.
생성 된 각 객체의 데이터 유형은 인스턴스화 된 것과 동일하므로 MovieClip
또는 그와 비슷한 것으로 설정할 수 없습니다.
"card_"+x
또한 객체 인스턴스화 (a
Class
) 할 필요가있다. 그렇지 않으면 인스턴스를 생성 할 수 없으며 항상 오류가 발생합니다.
저는이 문제에 대해 매우주의를 기울이고 싶습니다. 오류가 발생할 수있는 공간이 매우 크기 때문에이 구문을 사용하면 코드에서 읽기 어렵고 읽기 어려워집니다. 당신이의 인스턴스를 만들려고 -
이미 libary에 존재하는 무비 클립 당신의 "cardPrint"는 무엇입니까? – whodeee
"cardPrint"의 인스턴스를 만들려고합니다 – user2344403