私の質問への答えはおそらく簡単ですが、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="->" click="der_clickHandler(event)"/>
<s:Button id="izq" x="76" y="182" label="<-" click="izq_clickHandler(event)"/>
</s:Application>
そして、私が話していることを確認するためのコンパイル済みバージョンへのリンク: http://megaswf.com/file/1135821 (表示されない場合は「フルスクリーンで表示」を押してください)
私は午後中ずっとこれで立ち往生しており、私のプロジェクトには本当に必要なので、助けていただければ幸いです:S
とにかく、よろしくお願いします!