1
ステージやスパークアプリケーションのように、ネストされたコンテナとルートコンテナの表示オブジェクトからの距離を取得するにはどうすればよいですか?例えば祖先の表示オブジェクトの間で1つの表示オブジェクトの合計オフセットを取得するにはどうすればよいですか?
:
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
applicationComplete="applicationCompleteHandler(event)"
>
<fx:Script>
<![CDATA[
protected function applicationCompleteHandler(event:FlexEvent):void {
var point:Point = new Point(nestedButton.x, nestedButton.y);
var localToGlobalPoint:Point = this.localToGlobal(point);
var globalToLocalPoint:Point = this.globalToLocal(point);
var localToContentPoint:Point = this.localToContent(point);
trace("Button x: " + nestedButton.x);
trace("Button layout bounds x: " + nestedButton.getLayoutBoundsX());
trace("Button to main container localToGlobal x: " + localToGlobalPoint.x);
trace("Button to main container globalToLocal x: " + globalToLocalPoint.x);
trace("Button to main container localToContent x: " + localToContentPoint.x);
}
]]>
</fx:Script>
<mx:Canvas id="mainCanvas" top="10" left="10">
<mx:Canvas top="10" left="10">
<s:Group x="10" y="10">
<s:Button id="sparkButton2" label="spark button" x=10 y="10"/>
</s:Group>
</mx:Canvas>
</mx:Canvas>
</s:WindowedApplication>
ボタンが3つのコンテナにネストされ、各容器は、前のエッジから10
画素であり、ボタンはそれから10
画素総x
値があるべきEdgeのれる場合40
。それは私が得ている価値ではありません。各コールのx
の値は0
にトレースされています。
あなたはおそらく' nestedButton.localToGlobalをしたい(新しいポイント()):
は、ここでの機能だし、それが働いているように思える:
使い方を0,0をステージの位置に合わせる)、 'this'が' nestedButton'の直接の親でなければ、それは同じでしょう – BadFeelingAboutThis