- ベストアンサー
FLEXを用いたポップアップウィンドウ表示プログラムの改善方法
- FLEXを用いて作成したポップアップウィンドウを表示するプログラムで、親ウィンドウから取得した人物名が正しく表示されない問題があります。
- <mx:repeater>を使用して繰り返し処理を行っているため、繰り返したデータを取得する部分でエラーが発生しています。
- 改善方法として、子ファイルの「parentApplication.linkbutton_id.label」を「repeat_id.currentItem.name」に変更することで、正しい人物名を表示できるようになります。また、親ファイルとの連動には「ruby on rails」を使用しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
まず問題点ですが、Repeater で複製してますので、 linkbutton_id は配列要素になります。 parentApplication.linkbutton_id[0].label ←1つ目のボタンのラベル parentApplication.linkbutton_id[1].label ←2つ目のボタンのラベル 上記の様にすれば、ポップアップからラベルを調べることは可能ですが、 どのボタンが押されたのか、判断できません。 -------------------------------------------------------------- ウインドウ間でデータをやり取るする方法ですが、 簡単なのは、親ウインドウにプロパティを作ることです。 [Bindable] public var currentName:String; バインディングを利用するので、上記のような記述になります。 これをimport文の後にでも入れてください。 これで、currentName と言う文字列型のプロパティを作りました。 次に、どのボタンが押されたかを調べるには、clickイベントを使います。 呼び出し側でイベントオブジェクトを渡します。 >click="kobetu()"/> click="kobetu(event)"/> イベントプロシージャでは、受け取ったオブジェクトから、 クリックされたボタンのラベルをプロパティにコピー。 それから、ポップアップを表示。 public function kobetu(e:Event):void{ if(e.currentTarget is LinkButton) { currentName = LinkButton(e.currentTarget).label; PopUpManager.createPopUp(this, in_out, true); } } ポップアップの方は、親ウインドウに作ったプロパティをバインディングします。 ><mx:LinkButton id="linkbutton_id" label="{repeat_id.currentItem.name}" <mx:Label text="{parentApplication.currentName}" x="60" y="20" id="employee_id"/> 他にも方法はあると思いますが、 こんな感じで期待通りの動作になると思います。
その他の回答 (1)
- venzou
- ベストアンサー率71% (311/435)
先ほどの回答にミスがありました。 正しく読み替えて頂いて、問題解決したようですが、 念のため訂正しておきます。失礼しました。 ----誤---- ><mx:LinkButton id="linkbutton_id" label="{repeat_id.currentItem.name}" <mx:Label text="{parentApplication.currentName}" x="60" y="20" id="employee_id"/> ---------- ----正---- ><mx:Label text="{parentApplication.linkbutton_id.label}" x="60" y="20" id="employee_id"/> <mx:Label text="{parentApplication.currentName}" x="60" y="20" id="employee_id"/> ---------- >actionscript、mxmlを詳しく紹介しているサイトを知っていたら教えてください Flexに関しては、ここがお勧めです。 http://www.fxug.net/ 紹介とかチュートリアル的な物ではないですが、フォーラムが活発です。 フォーラム>超ビギナー 辺りに参加してみて下さい。
お礼
訂正の回答ありがとうございます。 FLEXのサイトも教えていただきありがとうざいます。
お礼
おぉおお!! すごい! 動きました!! 感謝感激です! 2日ほど悩んでいたものが3分でできましたwww 本当にありがとうございました。
補足
actionscript、mxmlを詳しく紹介しているサイトを知っていたら教えてください m(_ _)m