저는 (천천히) Flex 4를 배우고 SkinnableComponent를 확장하는 사용자 정의 구성 요소를 스키닝하려고합니다. 구성 요소는 모든 액션에 있으며 기본적으로 다음과 같습니다 : 그들은 아직 생성되지 있기 때문에SkinnableComponent로 모든 SkinSparts를 사용할 수있는 경우에 발생하는 이벤트는 무엇입니까?
는package components
{
import spark.components.supportClasses.SkinnableComponent
[SkinState("normal")]
[SkinState("over")]
[SkinState("selected")]
public class AccountSummary extends SkinnableComponent
{
[Bindable]
public var itemIndex:int = 0;
[Bindable]
public var accountName:String = "";
[Bindable]
public var accountNumber:String = "";
[Bindable]
public var currentBalance:String = "";
[SkinPart(required="true")]
public var lblAccountName:Label;
[SkinPart(required="true")]
public var lblCurrentBalance:Label;
[SkinPart(required="true")]
public var lblAccountNumber:Label;
[SkinPart(required="true")]
public var lblLastUpdated:Label;
public function AccountSummary()
{
super();
lblAccountName.text = accountName;
lblCurrentBalance.text = currentBalance;
lblAccountNumber.text = "Acc: " + accountNumber;
lblLastUpdated.text = "Last Updated: ";
}
override protected function getCurrentSkinState():String
{
return "normal";
}
}
}
난 데 문제는, 다양한 SkinParts의 생성자에 NULL 참조에 있습니다. 나는 그들의 .text 값을 할당하기 위해 그들에게 접근하는 가장 좋은시기가 언제인지 알아 내려고하고있다. 나는 partAdded()를 오버라이드 (override) 할 수있어 각 부분이 추가 될 때 .text 값을 추가 할 수 있지만 모두 사용할 수있을 때 전달되는 마술 이벤트를 듣고 싶습니다.
중요한지 여부는 확실하지 않지만 accountName, accountNumber 변수는 호스트 구성 요소에서 dataProvider와 함께 리피터를 사용하여 할당됩니다. AccountSummary 구성 요소에서 데이터를 사용할 수있을 때와 관련이 있는지 확실하지 않습니다. 또한 대기해야 할 수도 있습니다. FlexEvent.CREATION_COMPLETE를 사용하여 모든 .text 값을 SkinParts에 할당 할 수 있었지만 올바른 이벤트/모범 사례입니까? 어떤 도움이라도 대단히 감사하겠습니다!
제안에 감사하지만 내 질문에 명시된 바와 같이 - 나는 partAdded에 의존 할 필요가 없기를 바라고 각 부품을 하나씩 점검합니다. 나는 모든 부분이 추가 된 후에 해고 된 어떤 사건을 찾고 있었다. – WesleyJohnson
언급 한대로 구성 요소 수명주기를 확인하겠습니다. 아마도 좋은 생각입니다. – WesleyJohnson
좋아요, 라이프 사이클을 읽으면서 한 번에 모든 스킨 파트를 찾을 수있는 생성자, partAdded 및 creationComplete 전에 여러 이벤트가 있다는 것을 알 수 있습니다. – WesleyJohnson