1

localToGlobal でスタックする

私はこのコードを持っています(id = searchを参照):

<s:NavigatorContent id="clients" width="100%" height="100%" >
    <s:layout>
        <s:VerticalLayout gap="0"
                          paddingBottom="0"
                          paddingLeft="0"
                          paddingRight="0"
                          paddingTop="0"/>
    </s:layout>

    <s:SkinnableContainer backgroundColor="0xF3F3F3" width="100%" height="40">
        <s:layout>
            <s:HorizontalLayout verticalAlign="middle"
                                paddingLeft="3"
                                paddingBottom="2"
                                paddingTop="2"
                                paddingRight="3"/>
        </s:layout>

        <s:Button id="addClientBtn"
                  label="{resourceManager.getString(
                      'myResources','workplace.addClientBtn')}"
                  icon="{Images.add}"
                  click="{addClient()}"
                  doubleClickEnabled="true"
                  doubleClick="{openHelp('NewClient')}"/>

        <s:Spacer width="100%" />

        <components:SearchClients id="search"/>
    </s:SkinnableContainer>
</s:NavigatorContent>

作成中完了イベント ->

search.localToGlobal( new Point(search.x,search.y)) 

Output returns  
(x=0, y=32)

しかし、視覚的には、この出力が間違っていることがわかります。~ (x=300, y=32) のようなものにする必要があります

誰か助けてくれませんか?

4

2 に答える 2

0

これは完全には正しくありません。

search.localToGlobal(new Point(search.x,search.y));

search.xとsearch.yは、NavigationContainerに関連する座標です。ここで、search.localToGlocalは、検索に関連するポイントを期待します。つまり、x、yポイントはローカルで検索し、グローバル座標に変換します。

私はあなたが欲しいものは次のとおりだと思います:
search.localToGlobal(new Point(0、0));

ViewStackのcreationPolicy(デフォルトでは自動)を確認し、この計算を実行する時点でこのビューが最初のビューであるかどうかを確認することをお勧めします。デフォルトでは、アプリケーションcreationCompleteメソッドが呼び出されたときに、ビュースタックには1つのビュー(最初のビュー)のみが存在します。

于 2013-01-25T22:25:44.620 に答える
0

検索に関連するポイントを計算するため、ゼロポイントを設定する必要があります。

search.localToGlobal(new Point(0, 0));
于 2013-01-25T17:29:04.097 に答える