1
フレックスのマルチタッチのスケーリングイベントの動的登録の問題を解決する方法はありますか?私はちょうどこれの周りに私の頭を包むことはできません。フレックスマルチタッチパネルスケールの動的登録の問題
私は、(いくつかの行とラベルのなかで)自分自身がスクロールでラップされているグループ内のパスを取得しています。
<s:Scroller id="scroller">
<s:Group id="scrollerContent">
<s:Path id="path">
<s:stroke>
<s:SolidColorStroke color="#ffffff" weight="2"/>
</s:stroke>
</s:Path>
</s:Group>
</s:Scroller>
私は何をしたいのですが、パス(とscrollerContentグループ内の他のもの)上でのズームイン、ズームアウトすることがあるので、私のcreationComplete()メソッド私はscrollerContentグループにイベントリスナーを追加しました:ここ
scrollerContent.addEventListener(TransformGestureEvent.GESTURE_ZOOM, zoomEvent);
は、x = 0しかしに基づいて、実際にパスをスケーリングないクリストフCoenraetsは彼チャート例えば提供されたコード(ある; IはDynamicRegistrationクラスの認識だ
private function zoomEvent(e:TransformGestureEvent):void
{
zoom(e.scaleX, e.scaleY);
}
protected function zoom(scaleX:Number):void
{
var w:Number = path.width * scaleX;
if (scaleX>1)
path.width = w > width*5 ? width*5 : w;
else
{
path.width = w < width ? width : w;
if (path.x + path.width < width) path.x = width - path.width;
}
}
、正しく動作させることはできませんが、x = 0ポイントに基づいてパスの縮尺を変えます。
DynamicRegistration.scale(scrollerContent, new Point(e.localX, e.localY), scrollerContent.scaleX*= e.scaleX, scrollerContent.scaleY=1);
これについての助けがあれば幸いです!
、誰もこれを直面しないました問題?または、任意の点でチャートをズームする簡単な方法はありますか? GestureWorksにはこのためのAPIが用意されていますが、可能であれば、経験豊富なFlex/AS3デベロッパーにとってこの登録が大したことではないと思うので、ライセンスの購入を避けたいと思います。 – AlBirdie