フレックス:ViewStackの変更後にメソッドを呼び出します
-
25-10-2019 - |
質問
私のアプリケーションには、SelectedChild属性を使用してActionScriptを介して変更しているビュースタックがあります。私が遭遇する問題は、私が子供に割り当てた直後に、nullオブジェクトのプロパティまたは方法にアクセスできないようにする直後に、ビュースタック内の選択された子供になったコンポーネントのメソッドを呼び出したいということです。参照。"創造物をすべての人に変えずにこの仕事をすることができる方法はありますか?
ActionScript:
public function displayTaskDashboard(evt:Event):void
{
pm_viewstack.selectedChild = nc_taskDashboard;
taskDashboard.populateTasks(Globals.currentProject.Project_ID);
}
MXML:
<mx:ViewStack id="pm_viewstack" creationPolicy="auto">
<s:NavigatorContent id="nc_projectDashboard">
<components:ProjectDashboard/>
</s:NavigatorContent>
<s:NavigatorContent id="nc_taskDashboard">
<components:TaskDashboard id="taskDashboard" />
</s:NavigatorContent>
<s:NavigatorContent id="nc_taskWizard">
<components:TaskWizard id="taskWizard" />
</s:NavigatorContent>
</mx:ViewStack>
解決
vichStackインスタンス(pm_viewstack.validatenow()またはpm_viewstack.validatedisplaylist())に.validatenow()または.validatedisplaylist()メソッドを呼び出してください。しかし、それが子どもの創造政策に役立つかどうかはわかりません。
他のヒント
問題は、ビュースタックが最初にSelectedChildに割り当てられるまで子供を作成しないことです。これにより、ユーザーは実行時間中に可能なすべてのページにアクセスできないため、メモリが保存されます。これがデフォルトの動作です。ほとんどの人は、CreationPolicyを単に変更して、すべての子供を事前に設立し、記憶の節約を無効にします。別の方法は、各子供にCreatedCompleteイベントリスナーを登録することです。そうすれば、子供が作成されたらアルゴリズムを再開できます。これにより、メモリの節約が維持され、子供が作成された後に再開できます。心に留めておくべきことは、SelectedChildも割り当てられているたびに実行されないということです。ただし、チェックの場合は簡単に簡単に回避できます。