メイン とにかくFLASH【FLASHに関して全般】 フォームアプリ作成ノウハウ | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
関たかまさ | Åê¹ÆNo.11383 投稿日時: 2004-10-8 14:33 |
常連 居住地: 埼玉 投稿: 61
使用環境:
WinXP Pro(sp1) FlashMX 2004 Pro 7.2 |
Re: フォームアプリ作成ノウハウ 力になれずスイマセンでした
がんばってください |
flower | Åê¹ÆNo.11378 投稿日時: 2004-10-8 14:16 |
新米 居住地: 投稿: 5
使用環境:
|
Re: フォームアプリ作成ノウハウ このソースで動作確認してみましたが、やはり初期値と選択時の値のセットができないようです。
色々とご教授ありがとうございました。 勉強になりました。 もう少しがんばって弄ってみます。 関さん大変ありがとうございました。 |
関たかまさ | Åê¹ÆNo.11372 投稿日時: 2004-10-8 13:41 |
常連 居住地: 埼玉 投稿: 61
使用環境:
WinXP Pro(sp1) FlashMX 2004 Pro 7.2 |
Re: フォームアプリ作成ノウハウ えーと、Flexは触ったこと無いのでわからないです、すいません
掲示してもらったソースで検証しました。 一部手を加えてしまったので書いておきますね。
まず、Changeのスペルが違いました(笑) あとeditFieldでセットする値を選択されている番号にしています。 これでうまく動いてしまいました これでもだめかなぁ。 |
flower | Åê¹ÆNo.11369 投稿日時: 2004-10-8 13:19 |
新米 居住地: 投稿: 5
使用環境:
|
Re: フォームアプリ作成ノウハウ 関さんありがとうございました。
Rendererのソースなのですが修正してこのようにしました。 import mx.core.UIComponent import mx.controls.ComboBox class ComboBoxRenderer extends UIComponent { var Combo : MovieClip; var listOwner : MovieClip; // the reference we receive to the list var getCellIndex : Function; // the function we receive from the list var getDataLabel : Function; // the function we receive from the list var cards2 = [ {label:"test1", data:1}, {label:"test2", data:2}, {label:"test3", data:3} ]; function ComboBoxCellRenderer() { } function createChildren(Void) : Void { Combo = createClassObject(ComboBox, "ComboBox", 1, {styleName:this, owner:this}); Combo.addEventListener("chenge", this); Combo.dataProvider = cards2; size(); } // note that setSize is implemented by UIComponent and calls size(), after setting // __width and __height function size(Void) : Void { Combo.setSize(100, layoutHeight); Combo._x = (layoutWidth-100)/2; Combo._y = (layoutHeight-16)/2; } function setValue(str:String, item:Object, sel:Boolean) : Void { Combo._visible = (item!=undefined); Combo.editable=true; Combo.selectedIndex=str; } function getPreferredHeight(Void) : Number { return 16; } function getPreferredWidth(Void) : Number { return 100; } function chenge() { listOwner.editField(getCellIndex().itemIndex, getDataLabel(), Combo.selectedItem); } } 環境としては同じだとおもって聞いていたのですが、 FlexのDataGridのRendererとして使用しているのですが、このソースでできないってことはFlexとFlashで違うということなのでしょうか? |
関たかまさ | Åê¹ÆNo.11364 投稿日時: 2004-10-8 10:48 |
常連 居住地: 埼玉 投稿: 61
使用環境:
WinXP Pro(sp1) FlashMX 2004 Pro 7.2 |
Re: フォームアプリ作成ノウハウ おはようございます(^^)
引用: Combo.getItemAt(1).label; 選択値をセットしたいのであれば、selectedIndexで値をセットすれば表示されますよ。 あと、引用: Combo.editable="true"; 試しにちょっとやってみたソースを抜粋してのっけておきますね
こんな感じで動いてました。 あともうひとつだけ言わせてもらえるとしたら、ComboBoxは選択イベントがchengeなので、clickよりもchangeイベントで処理したほうがいいと思いますよ |
flower | Åê¹ÆNo.11360 投稿日時: 2004-10-8 10:07 |
新米 居住地: 投稿: 5
使用環境:
|
Re: フォームアプリ作成ノウハウ おはようございます。
早速の回答ありがとうございます。 コンストラクタ名・・・・盲点でした(笑) ご指摘ありがとうございます。 Combo.getItemAt(1).label; についてはGrid上にComboBoxの形では表示されているのですが 値が何も表示されない為、setValue()で無理やり規定値を 入れてみていました。 コンストラクタ名を修正し、 Combo.dataProvider = cards2; Combo.editable="true"; をcreateChildren()に戻しCombo.getItemAt(1).label; は削除してみたのですがデフォルトの値すらいまだ ComboBoxには表示されない状態です・・・ 何が原因なのでしょうか? |
関たかまさ | Åê¹ÆNo.11352 投稿日時: 2004-10-7 20:44 |
常連 居住地: 埼玉 投稿: 61
使用環境:
WinXP Pro(sp1) FlashMX 2004 Pro 7.2 |
Re: フォームアプリ作成ノウハウ えーと、コンストラクタ名違いませんか?(笑)
それはさておき、Rendrerを使ったときにはsetValueメソッドでコントロールするのは既にお分かりだと思いますが、
これは何を意図されてるんでしょうか? 引用: function setValue(str:String, item:Object, sel:Boolean) : Void 上記の様にtraceなどで見てもらえればわかるのですが、さまざまな場面でこのMethodはコールされます。 その度にdataProviderにセットして初期化されてしまうので、毎回同じものが選択されているのではないでしょうか? セットしたとしても、引数strで取得できる値でselectedIndexを設定してあげれば毎回設定された値が表示できると思いますが。 なお、clickイベントで選択番号をセットされているのはOKだと思います。 |
flower | Åê¹ÆNo.11351 投稿日時: 2004-10-7 20:27 |
新米 居住地: 投稿: 5
使用環境:
|
Re: フォームアプリ作成ノウハウ 早速のお返事ありがとうございます。
サンプルのCheckBoxRendererみたいな感じで常時表示で行いたいのです。 ソースは下記の様にしております。 import mx.core.UIComponent import mx.controls.ComboBox class ComboBoxRenderer extends UIComponent { var Combo : MovieClip; var listOwner : MovieClip; var getCellIndex : Function; var getDataLabel : Function; var cards2 = [ {label:"test1", data:1}, {label:"test2", data:2}, {label:"test3", data:3} ]; function RadioCellRenderer() { } function createChildren(Void) : Void { Combo = createClassObject(ComboBox, "ComboBox", 1, {styleName:this, owner:this}); Combo.addEventListener("click", this); size(); } calls size(), after setting function size(Void) : Void { Combo.setSize(100, layoutHeight); Combo._x = (layoutWidth-100)/2; Combo._y = (layoutHeight-16)/2; } function setValue(str:String, item:Object, sel:Boolean) : Void { Combo._visible = (item!=undefined); Combo.dataProvider = cards2; Combo.editable="true"; Combo.getItemAt(1).label; } function getPreferredHeight(Void) : Number { return 16; } function getPreferredWidth(Void) : Number { return 100; } function click() { listOwner.editField(getCellIndex().itemIndex, getDataLabel(), Combo.selectedItem); } } |
関たかまさ | Åê¹ÆNo.11350 投稿日時: 2004-10-7 19:54 |
常連 居住地: 埼玉 投稿: 61
使用環境:
WinXP Pro(sp1) FlashMX 2004 Pro 7.2 |
Re: フォームアプリ作成ノウハウ こんばんわ。
引用: 初期表示のデータと選択時に選択項目を表示することができずに躓いております。 どの様なロジックで実現されているのかわかりませんが、 【常に表示しない場合】 CellRendererの為に作成したMovieClipにTextFieldやLabel等を配置、もしくはクラスの中で動的に作成されたTextField等にComboBoxの現在設定されているラベルを表示。 同様に、選択されたらEventでTextを設定。 【常に表示する場合】 特に問題は無いはず・・・ ということで、どちらで実現されているでしょうか? サンプルのCheckBoxRendererみたいな感じか、入力可能状態のDataGridのTextInputみたいな感じかって事です |
flower | Åê¹ÆNo.11349 投稿日時: 2004-10-7 19:46 |
新米 居住地: 投稿: 5
使用環境:
|
Re: フォームアプリ作成ノウハウ はじめまして、flowerと申します。
CellRendererでComboBoxを表示で検索しここにたどり着きました。 CheckCellRendererに修正を加えComboBoxにし、内部で配列をComboBoxのデータにして表示しているのですが、初期表示のデータと選択時に選択項目を表示することができずに躓いております。 何がたりないのかご教授頂けませんでしょうか? 突然の質問で申し訳ありませんが何卒よろしくお願いいたします。 |
(1) 2 3 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |