OK、私が知っているところから、Flexのactionscriptは非同期で実行されます。私は、ループ内でメソッドを同期して実行する能力が必要です。このコードを考えてみましょう: Flex/Actionscriptのメソッド/関数のメソッド呼び出しを呼び出すときの最良の方法
public class CustomerContainer extends VBox
{
public function CustomerContainer()
{
super();
addEventListener(FlexEvent.CREATION_COMPLETE,
this_creationCompleteHandler);
}
public function build():void
{
//process something here
}
}
は、今、私たちは私たちのMXMLファイル
<mx:Script>
<![CDATA[
private var newContainer:CustomerContainer;
public function foo():void
{
for (var i:int = 0; i < EndingNumber; i++)
{
newContainer = new CustomerContainer();
newContainer.build();//I need this to finish before it goes on to the
// next one. here is where the problem is flex runs through this loop
// creating each new object but I do not know if the first 1 object is
// complete before it begin processing the second one in the For Loop.
}
}
]]>
</mx:Script>
でループを持っている、それはもう少し複雑ここで説明することであるとして、これは私の正確な状況ではありません。抽象クラスとそこから派生したいくつかのカスタムビューオブジェクトがあります。いくつかのビューは最初に完了した他のものに依存していますが、正しい順序でそれらを並べることはできません。タイマーはオプションではありません。これを正しく説明していない可能性があります。
あなたが望むように、それは正確に同期的に実行する必要があります。あなたが見ている結果は確かですか?ビルドメソッド内で非同期リモート呼び出しを使用するなど、何か他のことが起こっているはずです。完全に実行可能なサンプルを提供できますか?あなたの「ビルド」コードを知らなくても、「完成した」ということを推測するのは難しいです。あなたが何を指しているのかを知りません。 – JeffryHouser
Flextrasに同意し、ここで問題は見られません。実際に問題が発生していますか?あなたの質問が語られる方法は、存在しないかもしれない問題を予期しているように聞こえます。 – NoobsArePeople2
Actionscriptが非同期で実行されていません。それが事実なら、それは非常に面白いだろうコーディング。多分あなたのコードが非同期メソッド(サービスコール)を呼び出していますか? –