電子書籍の厳選無料作品が豊富!

プログラム超初心者です

AS3.0でComboBoxをつかってmcを操作できませんか?

ComboBoxに配列で入れて、ComboBoxの3番目を表示させると

mc.gotoAndStop(2);←が実行されるようにしたいです

変更しやすくするためスクリプトに書いて使いたいです

よろしくお願いします

A 回答 (1件)

Flashの任意のタイムライン(例:メインのタイムライン)に


ムービークリップ 「mc」 と
ComboBox 「my_cb」 とが
すでに配置されているものとします。

それら 「mc」 と 「my_cb」 が存在するフレーム(フレーム1ならフレーム1)に書くスクリプト例です。


//-----------------------------------
//ComboBox「my_cb」の初期表示を設定
my_cb.prompt = "あいさつの魔法。";

//ComboBox「my_cb」の表示ラベルとデータを設定
my_cb.addItem( { label: "こんにちワン", data:4 } );
my_cb.addItem( { label: "ありがとウサギ", data:3 } );
my_cb.addItem( { label: "こんばんワニ", data:2 } );
my_cb.addItem( { label: "さよなライオン", data:1 } );

//「my_cb」チェンジ時に 関数 changeFunc を実行
my_cb.addEventListener(Event.CHANGE, changeFunc);

//関数 changeFunc の定義
function changeFunc(e:Event):void {
//もし選択されたアイテムのdataが2であれば
if(my_cb.selectedItem.data == 2){
//mc内の再生をフレーム2で停止
mc.gotoAndStop(2);
}
}
//-----------------------------------


もっとも上のスクリプトの場合,
関数 changeFunc 内には 必ずしも if文 が必要なわけではありませんよね。

仮にあらかじめ
「ComboBox の data には mc を停止させるフレーム数を入れる」
というルールを決めておいたとすれば次のようにもできます。

//関数 changeFunc の定義
function changeFunc(e:Event):void {
//mc内の再生を選択アイテムのdataフレームで停止
mc.gotoAndStop(my_cb.selectedItem.data);
}


あと
ComboBox などを始めとする UIコンポーネント は
Flash に付属する オマケ 的な存在ですから
本にもあまり使い方は書かれていませんし
ネットでもそういうものを一々解説してません。
(UIコンポーネント は Adobe の人が ActionScript を駆使して作ったムービークリップの一種です。)

ですからUIコンポーネント系は,基本的に
ヘルプを見て,簡単な実験を繰り返して,その仕様を理解するのが誰でもがする普通の使い方です。
わからないことがあれば一にも二にも「ヘルプ」です。

http://livedocs.adobe.com/flash/9.0_jp/ActionScr …
http://help.adobe.com/ja_JP/FlashPlatform/refere …
「AS3.0でComboBox」の回答画像1
    • good
    • 0
この回答へのお礼

できました!
質問する前に自分でやってみたんですが、ここで間違ってました
selectedItem.data == 2
これをselectedItem == 2にしてました(汗
SharedObjectのようにdataで指定してやればよかったんですね。なるほどです
丁寧な解説、ありがとうございました

お礼日時:2011/06/24 20:40

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!