トップへ戻るニュースフォーラムFLASH-ML 過去ログBak@Flaダウンロードよくある質問と答
ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
野中文雄
Åê¹ÆNo.12538
投稿日時: 2004-11-21 9:40
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
迷える子羊の部屋【初心者専用】「オリジナルデータグリッドを作りたいっす 素人チャレンジャー」から移行です。

MovieClip.onEnterFrameイベントハンドラメソッド自体は、生成された各インスタンスに定義されます。しかし、その呼出し時に参照される変数(new_mcとi)はスクリプトを記述したタイムライン上に保持された共通の値になります。→「ドラッグアンドドロップについて教えてください
引用:
samuraiさんは書きました:
1.まず、新規シンボルで、RecordTipというMCを作成します。この中に、msg1_txtとmsg2_txtを配置します。そうして、ライブラリパネルのRecordTipを選択して右クリック→リンケージを選択して、リンケージ画面をだし、AS2.0クラスにmx.core.Viewを入力、ActionScriptに書き出しと最初のフレームに書き出しにチェックを入れてOKとします。(この辺は、Windowの投稿を参考にしてます)
2.次に、新規シンボルにて、MyGridというMCを配置し、以下のコードをフレーム1に書きました。
/***************************
 * ここでは、単純に20個
 * RecordTipのMCをattachMovieにて
 * 作成しています。
****************************/
for(i = 0; i < 20; i++){
    //attachMovieにてMCを作成してMyGridのMCに貼り付け?
    newName = "GridRecord"+i.toString();
    new_mc = this.attachMovie("RecordTip", newName, i);
    //重ならないようにy位置設定
    new_mc._y = new_mc._height*i;
    //MCがちゃんと作成されてから文字をセット
    //Window の投稿よりお知恵拝借(^^;
    new_mc.i = i;
    new_mc.onEnterFrame = function() {
        //文字セット
        trace([new_mc, i, this, this.i]);  // 確認用
        // new_mc.msg1_txt.text = i.toString();
        this.msg1_txt.text = this.i.toString();
        // new_mc.msg2_txt.text = "Flash";
        this.msg2_txt.text = "Flash";
        // delete new_mc.onEnterFrame;
        delete this.onEnterFrame;
    };
}

...[中略]...
これで、制御からプレビューを実行すると・・・
1?19レコードまでmsg1_txt msg2_txtに文字はセットされず、最後のレコードのみ、20とFlashとセットされます(泣)。試しにメイン画面(シーン1)にボタンを配置し、1レコードづつ生成して文字をセットするとうまくいきます。

ConfigurationフォルダのClasses/mx/controlsに、DataGrid.asがあります。
引用:
オリジナルのデータグリッドを見るにつけ、つくりたいなぁと思うのですが、サンプルソースが見あたらず、苦しんでおります。どうかよろしくお願いします。


----------------
 

samurai
Åê¹ÆNo.12558
投稿日時: 2004-11-22 2:05
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash MX2004
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
早速のご返答ありがとうございます。

引用:

new_mc.i = i;
new_mc.onEnterFrame = function() {
//文字セット
trace([new_mc, i, this, this.i]); // 確認用trace([new_mc, i, this, this.i]); // 確認用
trace([new_mc, i, this, this.i]); // 確認用
// new_mc.msg1_txt.text = i.toString();
this.msg1_txt.text = this.i.toString();
// new_mc.msg2_txt.text = "Flash";
this.msg2_txt.text = "Flash";
// delete new_mc.onEnterFrame;
delete this.onEnterFrame;
};


上記確認しました。
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord17,17
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord16,16
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord15,15
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord14,14
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord13,13
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord12,12
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord11,11
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord10,10
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord9,9
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord8,8
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord7,7
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord6,6
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord5,5
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord4,4
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord3,3
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord2,2
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord1,1
_level0.myScrollpanel.spContentHolder.GridRecord19,20,_level0.myScrollpanel.spContentHolder.GridRecord0,0

うーむ、thisってなかなか深いですね。それに、new_mcにiを追加して増すけど、これは、共通にならないのですね。この辺、なれが必要ですね。

引用:

ConfigurationフォルダのClasses/mx/controlsに、DataGrid.asがあります。

うむむむ、心がおれました 。これは、お手軽でない印象が・・・。どちらかと言うと、自由なレイアウトが出来るMCを繰り返しはりつけて、美しく見せたい、バインドは、グリッド側関数にオブジェクト(リスト)を渡して処理させるってのがやりたいです。ついでに、ページャーの機能を実装させて・・・。これを共有ライブラリかSWCにして使い回すってのが理想です。DataGrid.asもすこしおってみます。

えっとそれから、コンポーネントとSWCについて質問がまだあるんですけど・・・。別スレにしたほうがいいですね。それでは、ありがとうございました。

2004年11月22日 早く寝ないと・・・
関たかまさ
Åê¹ÆNo.12620
投稿日時: 2004-11-24 13:49
常連
居住地: 埼玉
投稿: 61
使用環境:
WinXP Pro(sp1)
FlashMX 2004 Pro 7.2
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
こんにちわ。
私も今まさにオリジナルDataGridを作ってます

DataGrid.as以外にも、追っていくとかなりのasファイルを見ないといけないんですよね・・・

ただ、私は基本的な動作部分はほぼ作ることができた(半人前ですが)ので、心を折らずにがんばってください!

あ、あとライブラリよりもSWCにした方がいいと思いますよ。
最新のHELP(7.2)にはかなり詳しくコンポーネントの作り方も載っているのでそんなに難しくないと思います。
samurai
Åê¹ÆNo.12671
投稿日時: 2004-11-25 14:44
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash MX2004
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
引用:

あ、あとライブラリよりもSWCにした方がいいと思いますよ。
最新のHELP(7.2)にはかなり詳しくコンポーネントの作り方も載っているのでそんなに難しくないと思います。

そっそうなんですか。ライブラリの方がお手軽な感じがするんですが。パフォーマンスも良さそうだし。
 MCをSWCにするのは、何とかHELPを見ながらできるんですが、既にあるSWCコントロール?(TextInputとか)の拡張をHELP通りにするとエラーになるんですよね 。きっとクラスのextendsの選択が正しくないんでしょうね。きっと、元ネタのクラスをいじれってことなんだろうなぁって当たりはつけているんですが。
 ちなみに、「関たかまさ」さんもScrollPaneで作っていらっしゃいます?私は、1レコードと言うか1パネルというか1MCに編集ボタン+削除ボタン+チェックボックス+テキスト3つというのを3段に分けて作っています。それを投稿のようなロジックでつくってます。よろしければ、どんな風に作っていらっしゃるか教えて頂けますか?もちろん公開できる範囲で結構ですので。お願いします。
関たかまさ
Åê¹ÆNo.12673
投稿日時: 2004-11-25 15:36
常連
居住地: 埼玉
投稿: 61
使用環境:
WinXP Pro(sp1)
FlashMX 2004 Pro 7.2
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
引用:

きっと、元ネタのクラスをいじれってことなんだろうなぁって当たりはつけているんですが。

StandardComponents.flaファイルを参考にすればいいと思いますよ。私は継承元のファイル達も違う名前にしてます。

引用:

 ちなみに、「関たかまさ」さんもScrollPaneで作っていらっしゃいます?私は、1レコードと言うか1パネルというか1MCに編集ボタン+削除ボタン+チェックボックス+テキスト3つというのを3段に分けて作っています。それを投稿のようなロジックでつくってます。よろしければ、どんな風に作っていらっしゃるか教えて頂けますか?もちろん公開できる範囲で結構ですので。お願いします。

今使っているのは、DataGridをコピーして都合のいいように改造したものです。

ただ、余りにもパフォーマンスが悪いので今作ってるのは全然なにも継承してないです
もちろんScrollPaneも使ってないです。UIScrollBarは使わせてもらってますが
で、見た目はMacroMediaのDataGridそっくりで作ってます。
ので、ボタンとかは最初からつけてはいないですね。
ただセル単位でCheckBox・TextInput・ComboBoxで編集できるようにはしています。(ようはcellRenderer機能を中に入れちゃっただけ・・・)
samurai
Åê¹ÆNo.12681
投稿日時: 2004-11-25 18:35
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash MX2004
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
引用:

ただ、余りにもパフォーマンスが悪いので今作ってるのは全然なにも継承してないです
もちろんScrollPaneも使ってないです。UIScrollBarは使わせてもらってますが
で、見た目はMacroMediaのDataGridそっくりで作ってます。
ので、ボタンとかは最初からつけてはいないですね。
ただセル単位でCheckBox・TextInput・ComboBoxで編集できるようにはしています。(ようはcellRenderer機能を中に入れちゃっただけ・・・)

cellRendererですね。ヘルプやここの書込で確認しました。なるほど、Java風ですね。これってMCがはりこめるんでしょうか?「関たかまさ 」さんはMCをつかったグリッドつくってますか?すいません。一休さんのどちて坊やみたいで(ふるっ )。もう一つ作られたオリジナルグリッドもSWCにされてるんですか? この辺は、今、会社のプロジェクトでFlashを使っているのですが、結構迷います。先のSWCか共有ライブラリかと言うことにも絡むのですが、プロジェクトにすると、どっちが使いやすいのか経験がない分、迷ってしまいます。私の認識が誤っていたら指摘して欲しいのですが、SWCは、各端末で管理が必要(SWCを\Configuration\Componentsへ)、共有ライブラリは、指定フォルダにて一括管理。それとも、SWCも同じように一括管理ができるのでしょうか?
関たかまさ
Åê¹ÆNo.12692
投稿日時: 2004-11-26 10:12
常連
居住地: 埼玉
投稿: 61
使用環境:
WinXP Pro(sp1)
FlashMX 2004 Pro 7.2
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
こんにちわ。

もちろんMCは使ってますよ。アホみたいに結構(笑)
極力減らすようにはしてますけどね・・・

私はSWCにしています。どっちみちクラスなんでどちらでも良い気がしますが、どう作るかは開発にあった方向で検討されれば良いと思いますよ。

■SWCの利点
・画面毎にFlashで配置したりする場合は、プロパティ設定である程度の指定ができる
・ソースをいじられる心配がない
・分散開発だったらリリースがラク
・利用者にとっては対象がひとつのファイルなので、わかりやすい
・ヘルプを作れる(Flashの中の)

こんなところでしょうか!?
samurai
Åê¹ÆNo.12728
投稿日時: 2004-11-26 17:20
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash MX2004
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
引用:

■SWCの利点
・画面毎にFlashで配置したりする場合は、プロパティ設定である程度の指定ができる
・ソースをいじられる心配がない
・分散開発だったらリリースがラク
・利用者にとっては対象がひとつのファイルなので、わかりやすい
・ヘルプを作れる(Flashの中の)


なるほどです。いじられる心配がないというのは響きますね。参考にさせて頂きます。いろいろありがとうございます。
Sif
Åê¹ÆNo.12763
投稿日時: 2004-11-27 4:13
半人前
居住地: たこ焼き王国
投稿: 36
使用環境:
XP SP2 Home
Pro 7.2
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
こんにちは。

今回、V2コンポーネントの共有に関して、いろいろとテストを
してみました。
長文ですが、お許しください。


1.[共有ライブラリアセット]>[ランタイム共有アセット]

 Web上に、共有したいシンボルがライブラリに入ったswfファイルを
 アップロードし、そのライブラリからシンボルを読み込む方式。

  コンポーネントをライブラリに入れ、識別子をつけて
  読み込むことを試みる。
   (ステージにコンポーネントを配置した際、自動的に
    ライブラリにコンポーネントが入ります。
    あとは配置したコンポーネントを削除すればOKです。)
  読み込みには成功するが、[リンケージ]>[AS2.0クラス]は
  動作せず。
   (ただのムービークリップとして認識される)
  よって、当方式によるコンポーネントの共有は不可能。

2.[共有ライブラリアセット]>[オーサータイム共有アセット]

 LAN内でアクセス可能な場所に、共有したいシンボルがライブラリに
 入ったflaファイルを用意し、そのライブラリのシンボルを
 参照する方式。

  コンポーネントをライブラリに入れて参照を試みるが、
  参照リストにそのコンポーネントは表示されず。
  ただし、コンポーネントを入れたムービークリップは
  参照が可能で、その際は参照したムービークリップと
  そこに入っているコンポーネントがライブラリに追加された。
  あとは、ムービークリップを[パブリッシュ前に常に更新]に
  チェックを入れておくことで、事実上コンポーネントの
  共有が可能です。


結論

複数人にコンポーネントを配布する必要があり、なおかつ
そのコンポーネントを簡単に更新できるようにしたい場合には、
上記2の方法で共有し、コンポーネント更新後に
「コンポーネント更新のため、一度パブリッシュしてください」
とコンポーネント使用者に伝えるだけで、swcファイルもしくは
Extension Managerのmxpファイルを何度も配布する必要がない
(というよりそもそも配布する必要がない)ということです。
ただし、本来swcファイルやmxpファイルに包含できるものが
包含できなくなります。
 (自作ヘルプやコードカラーリングの設定など)

個人でコンポーネントを作り、個人でネット配布をする場合には
swcファイルやmxpファイルにして配布すればよいと思うのですが、
会社などで複数人にコンポーネントを配布する場合は、それらを
配布せずに上記2の方法で共有する方が良いのではないかと思います。

自分なりにずっと調べたかったことなので、ひぢょ?にスッキリしました
ご参考になれば、幸いです。
samurai
Åê¹ÆNo.12794
投稿日時: 2004-11-28 16:41
新米
居住地:
投稿: 6
使用環境:
WinXP,Flash MX2004
Re: オリジナルデータグリッドを作りたいっす 素人チャレンジャー[form 迷える子羊の部屋]
ありがとうございます。非常に参考になりました。SWCは、プロジェクト内で管理する際、どうも動的な更新がやばそうだとの憶測がでていましたので、見送ろうかなぁと考えておりました。オーサータイム共有アセットについては、これから調べます 。勉強不足です。ただ、
引用:

上記2の方法で共有し、コンポーネント更新後に
「コンポーネント更新のため、一度パブリッシュしてください」
とコンポーネント使用者に伝えるだけ・・・

となると、パブリッシュ後のコンポーネントの入れ替えは、再度パブリッシュしなければならないと読みとれるのですが。とすると、同じコンポーネントを複数の画面で使っている場合、再度そのコンポーネントを使っている画面をパブリッシュし直す必要があるのでしょうか?そうすると、メンテナンス性が落ちる気がするんですが。

参考にした投稿:シンボルの動的な読み込みについて
(1) 2 »
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を
 
Copyright (C) 2003 FLASH-japan. All rights reserved.
Powered by Xoops