0

私の質問への答えはおそらく簡単ですが、Web でそれを解決する例は見つかりませんでしたし、ActionScript リファレンスを読んだ解決策も見つかりませんでした。

私の問題は次のとおりです。Scroller (spark.components.Scroller) ウィンドウ内に大きな UIComponent 派生要素があります。Scroller クラスが優れているのは、サイズが動的に変化するキャンバス要素がその境界を超えると、スクロールバーが自動的に表示され、その中の UIComponent のスクロールを処理するからです。

ただし、これらの自動的に表示されるスクロール バーを使用してスクロールできるようにするだけでなく、自分で実装するパン ツールを使用してスクロールできるようにしたいと考えています (たとえば、Adobe ソフトウェアの手のひらツールに似ています)。問題は、Scroller ウィンドウ内の要素の位置を正しく変更できないことです。

最初のアプローチとして、要素の「x」および「y」プロパティにアクセスしようとしましたが、それらを変更すると、必要な結果が得られません。そのコードは次のとおりです (ここでは、単純化するために、「内部」要素としてテキスト ラベルを使用し、ハンド ツールの代わりに外部スクロール コントローラーとして 2 つのボタンを使用しました)

Tests.mxml

    <fx:Script>
        <![CDATA[

            protected function der_clickHandler(event:MouseEvent):void
            {
                text.x += 5;

            }

            protected function izq_clickHandler(event:MouseEvent):void
            {
                text.x -= 5;

            }

        ]]>
    </fx:Script>

    <fx:Declarations>
    </fx:Declarations>
    <s:Scroller id="sc" x="50" y="50" width="200" height="100">
        <s:Group width="100%" height="100%">
            <s:Label id="text" width="400" height="10" x="50" y="50" text="blebleblebleblebleblebleblebleblebleblebleble"/>
        </s:Group>
    </s:Scroller>
    <s:Button id="der" x="154" y="182" label="-&gt;" click="der_clickHandler(event)"/>
    <s:Button id="izq" x="76" y="182" label="&lt;-" click="izq_clickHandler(event)"/>

</s:Application>

そして、私が話していることを確認するためのコンパイル済みバージョンへのリンク: http://megaswf.com/file/1135821 (表示されない場合は「フルスクリーンで表示」を押してください)

私は午後中ずっとこれで立ち往生しており、私のプロジェクトには本当に必要なので、助けていただければ幸いです:S

とにかく、よろしくお願いします!

4

1 に答える 1

1

なんとか解決しました!(ここに投稿した直後に何かを解決するのは今週で2回目です:D)。

私が変更しなければならなかったプロパティは sc.viewport.horizo​​ntalScrollPosition+=5; です。内部要素の「x」位置の代わりに。垂直位置についても同じです。

于 2011-06-22T09:00:24.817 に答える