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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     10このボタンにfor文を使ってマウスリスナーを関連付ける
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
yukidaruma
Åê¹ÆNo.48026
投稿日時: 2011-9-22 7:01
新米
居住地:
投稿: 14
使用環境:
WinVista,Flash cs3
10このボタンにfor文を使ってマウスリスナーを関連付ける
題名を変えてもう一度投稿します。お願いします。
10このボタン(btn0?btn9)にfor文を使ってマウスリスナーを関連付けることを行いたいです。

for (var i:int=0; i<10; i++) {
var botn:MovieClip=this["btn"+i]);
btn5.addEventListener(MouseEvent.CLICK , set_swf);
}

のように書きましたが、
「TypeError: Error #1034: 強制型変換に失敗しました。btn@5815701 を flash.display.MovieClip に変換できません。
at _fla::MainTimeline/frame1()」
と出力エラーが出ます。
どこを直すと正しくできるのでしょうか。

10このボタンは、btnというインスタンスです。1つのレイヤーに配置してあります。
森 巧尚
Åê¹ÆNo.48027
投稿日時: 2011-9-22 15:29
モデレータ
居住地: 宝塚
投稿: 650
使用環境:
.5/CS4/Safari3
XP+2000//IE6
Re: 10このボタンにfor文を使ってマウスリスナーを関連付ける
いろいろ間違いがあるようですが、まずはエラーをよく読んでみてください。

「強制型変換に失敗しました。btn@5815701 を flash.display.MovieClip に変換できません。」と、「btnをMovieClipに変換できない」と言われています。

yukidarumaさんは、10個のボタンを置いてそれを変数に入れて扱おうとしているのに
「var botn:MovieClip=this["btn"+i]);」
と、ボタンを無理矢理MovieClipに変換しようとしています。

ボタンを変数に入れようとしているのだから、
「var botn:SimpleButton = this["btn" + i];」
とする必要があります。

※ちなみにこの行の最後に余分な「) 」があります。
 別のエラーがでていませんか?「)」は削除します。

さらに次の行で
「btn5.addEventListener(MouseEvent.CLICK , set_swf);」
と「btn5」だけにaddEventListenerしていますが、
これは全部のボタンにしたいのではないですか?
そのために、変数botnに入れたのではないですか?
「botn.addEventListener(MouseEvent.CLICK , set_swf);」
とするべきです。


----------------
森 巧尚
http://www.ymori.com

yukidaruma
Åê¹ÆNo.48028
投稿日時: 2011-9-22 22:23
新米
居住地:
投稿: 14
使用環境:
WinVista,Flash cs3
Re: 10このボタンにfor文を使ってマウスリスナーを関連付ける
森さん返答ありがとうございます。
ミスだらけの内容ですみませんでした。
プレビューをしっかり見ないで投稿してしまいました。

正しくは↓でした。

for (var i:int=0; i<10; i++) {
var botn:MovieClip=this["btn"+i];
botn.addEventListener(MouseEvent.CLICK , set_swf);
}
ご指摘通り、ムービークリップをシンプルボタンに変えたら、即できました。実際はボタンを70個ほど作ります。

作りたい内容のフラッシュに少し近づきました。
ありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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