0

オートコンプリートを機能させようとしていますが、mxml で配列を作成し、初期化キーワードでファイルの先頭にある arrayCollection を初期化するだけでうまくいきます。

ただし、webservice から arraycollection を設定したいのですが、取得できないようです。

私のアプリケーションタグには次のものがあります

creationComplete="init()"
initialize="data2 = new ArrayCollection(data1);" 

次に、私のinitメソッドで。

    private function init():void 
{
userRequest.loadWSDL(wsdlUrl);
userRequest.getAllCountries();
}   

//これは、userRequest.getAllCountries() から結果を取得したときに呼び出されます。

 private function getAllCountriesResult(e:ResultEvent):void 
    {
    data1 = new Array(e.result);
        }

ただし、テキスト ボックスには値がありません。

アイデアのある人はいますか?

4

2 に答える 2

1

まず、配列はバインド可能ではないため、変数data1を変更してもノックオン効果はありません。

arrayCollectionはバインド可能です。

したがって、結果(e.result)が実際には配列であると仮定すると(デバッグ時にこれを確認する必要があります)、次のように実行できます。

[Bindable]
priavte var ac : ArrayCollection;

次に、getAllCountriesResult関数があります。

ac = new ArrayCollection(e.result);

次に、varacに設定されたdataproviderがあるものはすべて更新されます。

textAreaなどのテキスト値を更新する場合は、arrayCollectionでchangeイベントをリッスンし、適切なアクションを実行する必要があります。


以下の追加のポイントから(元の質問を編集するだけです)

通常のテキストボックスはarrayCollectionを使用しないため、アドビ交換領域からのオートコンプリートテキスト入力ボックスについて説明します。あなたがいくつかのコードを投稿した場合、それはあなたを助けるのをより簡単にするかもしれません。Preinitialize、ininitialize、creationComplete、applicationCompleteの順になります(これは、呼び出される順序です)。

私が考えているコンポーネントを使用している場合は、http://www.websector.de/blog/2008/04/30/quick-tip-avoid-issues-using-adobes-autocomplete-input-component-usingをチェックしてください。 -flex-3 / flex 3に問題があるようですので、http://blogs.adobe.com/flex/2006/09/component_autocomplete_text_in.htmlを確認してください

于 2009-01-20T15:55:50.047 に答える
0

これを試して:

private function getAllCountriesResult(e:ResultEvent):void 
{
   data2.source = new Array(e.result); // or data2.source = e.result as Array
}

data2 が既に ArrayCollection として初期化されていることを確認してください。

オートコンプリートについては、自分で解決しようとしています。

于 2010-03-11T03:33:47.533 に答える