I hit this problem quite often and wonder if there is a general
solution...
I have a component which displays a list of questions and has the
concept of a "current" question i.e. the question the user is answering:
<mx:Script>
<![CDATA[
import mx.collections.ArrayCollection;
[Bindable]
public var questions:ArrayCollection;
[Bindable]
public var currentQuestion:MultipleChoiceQuestion =
questions[lstBox.selectedIndex];
]]>
</mx:Script>
The problem is that the questions array doesn't get populated until
after Flex has tried to setup all the bindings meaning I get a
NullPointer when it tries to setup "currentQuestion".
At the moment I have to get around this with the following code:
<!-- Databinding of Current Question -->
<mx:Script>
<![CDATA[
private function init():void {
refreshCurrentQuestion();
}
public function refreshCurrentQuestion():void {
if (questions != null) {
currentQuestion =
questions[lst.selectedIndex];
}
}
]]>
</mx:Script>
This seems quite hacky...