ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   Flex Builder 2.0
     Repeater内のコンポーネントの位置を知りたいです。
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
maru
投稿日時: 2007-5-8 16:07
常連さん
登録日: 2007-1-26
居住地:
投稿: 37
Repeater内のコンポーネントの位置を知りたいです。
以下のようにRepeaterを使ってボタンを複製しています。


<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas 
		xmlns:mx="http://www.adobe.com/2006/mxml"
		width="735" height="220" backgroundColor="#ffffff" borderStyle="none" x="0" y="0">

<mx:Script>
	<![CDATA[
		[Bindable]
		public var arrGeneral:Array =["a", "b", "c", "d", "e"];		
   ]]>
</mx:Script>

	<mx:Tile id="tileItem" direction="horizontal" 
	    horizontalGap="10" verticalGap="15"
	    paddingLeft="10" paddingTop="10" paddingBottom="10" paddingRight="10" x="2.5" y="95" width="730" height="50" borderStyle="none">
	   	 <mx:Repeater id="rpItem" dataProvider="{arrGeneral}">
	   	   	 <mx:Button id= "btnItem" height="30" width="170" fontSize="12" label="{String(rpItem.currentItem)}"  
	   	   	 			toggle='true' fontWeight="bold" color="#666666"/>	       	 
	   	 </mx:Repeater>    
	</mx:Tile>
</mx:Canvas>


実際の業務ではボタンの数はデータ件数により異なるので
表示領域の幅と高さを件数に合わせて可変にしたいと思っています。
ボタンはRepeaterのChildでgetChildAtを使えるのなら
取得したChildのx、yの値から割り出そうかな。。。とまでは思い描いています。
でも書き方が悪かったのかgetChildAtがうまくいきませんでした。

何かいい方法があれば教えてもらいたいです。
よろしくお願いします。
nobu
投稿日時: 2007-5-8 16:58
ご主人様
登録日: 2006-6-17
居住地:
投稿: 593
Re: Repeater内のコンポーネントの位置を知りたいです。
>maruさん

こんな感じでいかがでしょ?


<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="592" height="572">
	<mx:Script>
		<![CDATA[
			import mx.core.UIComponent;
			import mx.controls.Alert;
			[Bindable]
			private var items:Array = [1,2,3,4,5];
			
			private function btnOnClick(e:MouseEvent):void
			{
				Alert.show(e.currentTarget.x + " . " + e.currentTarget.y);
			}
		]]>
	</mx:Script>
	<mx:Tile x="10" y="170" width="552" height="352">
		<mx:Repeater id="rp" dataProvider="{items}">
			<mx:Button id="btn" label="btn_{rp.currentItem.toString()}" width="134" height="128" click="btnOnClick(event);"/>
		</mx:Repeater>
	</mx:Tile>
	<mx:Label x="10" y="51" id="sel" text="ラベル" width="552" height="78" fontSize="50" textAlign="center"/>
</mx:TitleWindow>



btnOnClickのところで、x,y座標が取得できていると思います。
venzou
投稿日時: 2007-5-8 20:15
ご主人様
登録日: 2007-1-25
居住地: 穴の中
投稿: 101
Re: Repeater内のコンポーネントの位置を知りたいです。
こんばんは

引用:
ボタンはRepeaterのChildでgetChildAtを使えるのなら
取得したChildのx、yの値から割り出そうかな。。。とまでは思い描いています。
でも書き方が悪かったのかgetChildAtがうまくいきませんでした。

ボタンは、Repeater ではなく、Tile の子になります。
Tile の getChildAt で列挙出来ますよ。
maru
投稿日時: 2007-5-15 9:24
常連さん
登録日: 2007-1-26
居住地:
投稿: 37
Re: Repeater内のコンポーネントの位置を知りたいです。
返事が遅れてすみません!

Tileの子なんですね。
試してみたらうまくいきました♪

ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を