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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     コンポーネントComboBoxがうまく動きません。
投稿するにはまず登録を

スレッド表示 | 古いものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kukku
Åê¹ÆNo.11011
投稿日時: 2004-9-21 21:15
半人前
居住地:
投稿: 33
使用環境:
&
:Win2000: &
Re: MovieClipからシーンを指定したgotoAndStop()関数は呼出せません
野中文雄さんありがとうございました。
そして大きなヒントをいただき本当に助かりました
自分の中で突っかかっていたものがすっと取れた感じです。
一応フォーラムですので参考になるかわかりませんが、変更点を載せておきます。

空のムービークリップのインスタンス名:gamen
onClipEvent (load) {
function update(ComboBox) {
//コンポーネントで選択されたDataを取得
swfFile = ComboBox.getSelectedItem().data;
trace([ComboBox, ComboBox.getSelectedItem, ComboBox.getSelectedItem()]); // 追加確認
trace(ComboBox.getValue()); // 追加確認
trace(swfFile); // 確認用
_root.gotoAndStop(swfFile);
}
}

コンボボックス
onClipEvent (load) {
//ComboBoxの選択が変更されたら実行
this.setChangeHandler("update", _root.gamen);

}

各シーンでラベルを作成
例)1シーン目のフレーム1でラベル名をstart1とする
その他各シーン同等

コンボボックスのプロパティインスペクタでdataにフレームラベル名を入力

このようにしましたら出来ました。長らく野中さんにめんどうを見ていただきまたきましてありがとうございました。とっても勉強になりました。

野中文雄
Åê¹ÆNo.11008
投稿日時: 2004-9-21 20:21
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: MovieClipからシーンを指定したgotoAndStop()関数は呼出せません
確認した「結果」は、どうだったのでしょうか?「ボタンを追加」してはいけませんよ。あくまで、_root.gamenにスクリプトを記述して、お試しください。

おそらく、指定したシーンには移動しないと「推測」します。ここでは、ComboBoxコンポーネントは使用していません。したがって、ComboBoxコンポーネントとは、別問題だということになります。
引用:
kukkuさんは書きました:
ボタンを追加してon(release)次の様に確認いたしました。

スクリプトは、わずかに3行です。閉じ括弧}は、どう考えても間違えようがありません。gotoAndStop()関数をtrace()その他のステートメントに置換えれば動作するでしょうから、on (release)ハンドラに問題がないこともすぐに確認できるはずです。

消去法により、問題はgotoAndStop()関数だということにならざるをえないと思われます。そうなれば、「ActionScript辞書」を確認し、意図どおりに動作する場合としない場合とを比較するなどしてみれば、問題の絞込みは可能なはずです。知識というより、「理屈」で考えることが大切です。

参考:「gotoAndPlay/gotoAndStopでシーンの移動ができない
引用:
on(release){
    gotoAndStop("ページ3",1);
}

どこが間違っているのかいっぱいいっぱいです。


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

kukku
Åê¹ÆNo.11007
投稿日時: 2004-9-21 19:21
半人前
居住地:
投稿: 33
使用環境:
&
:Win2000: &
Re: コンポーネントComboBoxがうまく動きません。
野中文雄さんありがとうございます。
ボタンを追加してon(release)次の様に確認いたしました。

on(release){
gotoAndStop("ページ3",1);
}

どこが間違っているのかいっぱいいっぱいです。

野中文雄
Åê¹ÆNo.11006
投稿日時: 2004-9-21 18:54
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: コンポーネントComboBoxがうまく動きません。
えー、以下の確認は、お済みになったということでしょうか?
引用:
野中文雄は書きました:
コールバック関数が呼ばれていたら、つぎにgotoAndStop()関数のターゲットを別途確認しましょう。
// MovieClip: _root.gamen
// MovieClipアクション
// ComboBoxコンポーネントとは切離して動作確認
on (release) {
    // gotoAndStop(<swfFileに入る値のひとつ>);
    _root.gotoAndStop(<swfFileに入る値のひとつ>);
    // その他パスを変更して動作を確認
}

引用:
kukkuさんは書きました:
swfFileにきちんとdata名が代入されているのになぜ飛ばないのでしょうか。


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

kukku
Åê¹ÆNo.11005
投稿日時: 2004-9-21 18:46
半人前
居住地:
投稿: 33
使用環境:
&
:Win2000: &
Re: コンポーネントComboBoxがうまく動きません。
野中文雄さんありがとうございます。
3行目のページ3ですが、先ほどまでなぜかundefinedとなっていましたが、きちんとdata名が表示されました。

swfFileにきちんとdata名が代入されているのになぜ飛ばないのでしょうか。
野中文雄
Åê¹ÆNo.11004
投稿日時: 2004-9-21 18:35
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: コンポーネントComboBoxがうまく動きません。
3行目は、つぎのステートメントの出力です。undefinedではないようですが。(^^;
        trace(swfFile);  // 確認用

引用:
kukkuさんは書きました:
trace()の追加で以下のように出力されました。
_level0.instance4,[type Function],[object Object]
テスト3
ページ3


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

kukku
Åê¹ÆNo.11003
投稿日時: 2004-9-21 18:20
半人前
居住地:
投稿: 33
使用環境:
&
:Win2000: &
Re: コンポーネントComboBoxがうまく動きません。
野中文雄さん、たびたびすみません。
trace()の追加で以下のように出力されました。

_level0.instance4,[type Function],[object Object]
テスト3
ページ3

野中文雄
Åê¹ÆNo.11002
投稿日時: 2004-9-21 18:04
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: コンポーネントComboBoxがうまく動きません。
Flash MX 2004 7.2(英語版) + MX ComboBoxコンポーネント/Mac OS X.2.8でFlash Player 6書出しをして、正常に動作することを確認しています。
引用:
kukkuさんは書きました:
2004の7.2を使用しています。
旧コンポーネントというのはMX版のコンポーネントです。

本題ですが、パブリッシュはFlashPlayer6でパブリッシュしております。

コールバック関数が呼出されていることは確認ができた、ということになります。しかし、FComboBox. getSelectedItem()メソッドが、値を正しく戻していないようです。
引用:
次にコールバック関数は次の様に帰ってきました。

undefined

正常に動作していないということでしょうか。よくわかりません。

trace()する項目を、追加してみてください。
onClipEvent (load) {
    function update(ComboBox) {
        //コンポーネントで選択されたDataを取得
        swfFile = ComboBox.getSelectedItem().data;
        trace([ComboBox, ComboBox.getSelectedItem, ComboBox.getSelectedItem()]);  // 追加確認
        trace(ComboBox.getValue());  // 追加確認
        trace(swfFile);  // 確認用
        gotoAndStop(swfFile);
    }
}

私の環境でスクリプトをコピー&ペーストしても動作しましたが、インスタンス名"ComboBox"は最終的には使用を避けた方がよいでしょう。


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

kukku
Åê¹ÆNo.11001
投稿日時: 2004-9-21 17:52
半人前
居住地:
投稿: 33
使用環境:
&
:Win2000: &
Re: コンポーネントComboBoxがうまく動きません。
野中文雄さん、ご指摘ありがとうございます。
わかりづらい表現をしてしまいましてすみませんでした。
2004の7.2を使用しています。
旧コンポーネントというのはMX版のコンポーネントです。

本題ですが、パブリッシュはFlashPlayer6でパブリッシュしております。
次にコールバック関数は次の様に帰ってきました。

undefined

正常に動作していないということでしょうか。よくわかりません。
何度もすみません。
野中文雄
Åê¹ÆNo.10999
投稿日時: 2004-9-21 17:14
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: コンポーネントComboBoxがうまく動きません。
問題のご説明は、「第三者がその内容を手元で再現できる程度に、具体的にお書き」ください。→【第三者から見てわからない

後のポストで「2004のコンポーネントを使ってみたい」と書かれているので、MX 2004をお使いだと「推測」します。その場合7.1ですか、7.2のアップデートですか?

スクリプトから判断するかぎり「旧コンボボックス」とは、MXのコンポーネントだと「推理」されます。7.2のコンポーネントに対して、7.1のものも旧コンポーネントであり、実際動作が異なる部分もあります。ご説明は、正確を期してください。

パブリッシュは、Flash Player 6を指定されていますか?
引用:
kukkuさんは書きました:
私がやってみた内容は旧コンボボックス(ムービークリップとなってる)をComboBoxとインスタンス名をつけて、もうひとつ空のムービークリップにgamenというインスタンス名をつけて次の様なコードを入れました。
ComboBoxのコード
onClipEvent (load) {
    //ComboBoxの選択が変更されたら実行
    this.setChangeHandler("update", _root.gamen);
}

まず、コールバック関数が呼ばれているかどうかを確認してください。
引用:
gamenのコード
onClipEvent (load) {
    function update(ComboBox) {
        //コンポーネントで選択されたDataを取得
        swfFile = ComboBox.getSelectedItem().data;
        trace(swfFile);  // 確認用
        gotoAndStop(swfFile);
    }
}

コールバック関数が呼ばれていたら、つぎにgotoAndStop()関数のターゲットを別途確認しましょう。
// MovieClip: _root.gamen
// MovieClipアクション
// ComboBoxコンポーネントとは切離して動作確認
on (release) {
    // gotoAndStop(<swfFileに入る値のひとつ>);
    _root.gotoAndStop(<swfFileに入る値のひとつ>);
    // その他パスを変更して動作を確認
}


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

(1) 2 »
スレッド表示 | 古いものから 前のトピック | 次のトピック | トップ

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