![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?8acaa2e)
ロールオーバーで下の画像を表示させる:を参考にしています。
http://oshiete.goo.ne.jp/qa/7020788.html
ここはアクションスクリプト2.0でしたが、私はFLASH CS3 アクションスクリプト3.0で
作っています。
その回答をもとに100X100のロールオーバー用の画像を16個表示させるために
書きました。ステージは400x400です。
for (var i:Number = 0; i<=15; i++) {
if (i != 0) {
var my_mc:MC = new MC();
my_mc.x = i%4*100;
my_mc.y = Math.floor(i/4)*100;
addChild(my_mc);
}
}
16個で埋め尽くすことはできましたが、my_mcに番号をつけるなどして配列を使って
やらなければならないと考えますが方法がわかりません。今は16番目(iが15)しか
ロールオーバーしません。
全体のアクションスクリプトを書きます。
import fl.transitions.*;
import fl.transitions.easing.*;
for (var i:Number = 0; i<=15; i++) {
if (i != 0) {
var my_mc:MC = new MC();
my_mc.x = i%4*100;
my_mc.y = Math.floor(i/4)*100;
addChild(my_mc);
}
}
my_mc.addEventListener(MouseEvent.ROLL_OVER,onrollOver);
function onrollOver(eventObj:Event):void {
//ロールオーバーイベントを受けたインスタンスを取得
var target_mc:MovieClip = MovieClip(eventObj.currentTarget);
//そのインスタンスをフェードアウト
TransitionManager.start(target_mc, {type:Fade, direction:Transition.OUT, duration:2, easing:None.easeNone});
//そのインスタンスのイベントリスナーを削除
target_mc.removeEventListener(MouseEvent.ROLL_OVER,onrollOver);
}
No.1ベストアンサー
- 回答日時:
まずその前の AS2 版 ですが
それは duplicateMovieClip(ステージ上にあるMCの複製) を使っているので
左上コーナーの1つは配置したままにしています。
AS3 では duplicateMovieClip(ステージ上にあるMCの複製) は使えないので
左上コーナーに MC を残す意味がありません。むしろ邪魔です。
ですからステージ上には 100×100 の ■MC は1つも残さない方が良いです。
そして if (i != 0) も削除します。
とりあえずそういうこととして
このご質問で書かれているスクリプトでは
単に
my_mc.addEventListener(MouseEvent.ROLL_OVER,onrollOver);
の位置(書き場所)が悪いだけです。
「my_mc」は動的に参照を変える変数ですが
「my_mc」が生成した 各MC 1個体 を対象としているときに
my_mc.addEventListener(MouseEvent.ROLL_OVER,onrollOver);
をすれば良いのです↓。
//-------------------------------------------
import fl.transitions.*;
import fl.transitions.easing.*;
for (var i:int = 0; i<=15; i++) {
//元あった if は削除
var my_mc:MC = new MC();
my_mc.x=i%4*100;
my_mc.y=Math.floor(i/4)*100;
addChild(my_mc);
//ココに移動
my_mc.addEventListener(MouseEvent.ROLL_OVER,onrollOver);
}
function onrollOver(eventObj:Event):void {
//ロールオーバーイベントを受けたインスタンスを取得
var target_mc:MovieClip=MovieClip(eventObj.currentTarget);
//そのインスタンスをフェードアウト
TransitionManager.start(target_mc, {type:Fade, direction:Transition.OUT, duration:2, easing:None.easeNone});
//そのインスタンスのイベントリスナーを削除
target_mc.removeEventListener(MouseEvent.ROLL_OVER,onrollOver);
}
//-------------------------------------------
配列などを使って
個々のインスタンスを参照する変数(要素)を別々に用意してもいいですよ。
そうするにしても
結局 生成した 各MC 1個体 を対象として配列の要素に入れなければなりませんし
効率の良い書き方をするなら(何度も for文 を回さないとするなら)
結局,上の書き方と同じになります↓。
//-------------------------------------------
import fl.transitions.*;
import fl.transitions.easing.*;
//生成する MC を格納する配列を用意
var mcArr:Array = new Array();
for (var i:int = 0; i<=15; i++) {
//配列の各要素に生成した MC の参照を格納
mcArr[i] = new MC();
mcArr[i].x=i%4*100;
mcArr[i].y=Math.floor(i/4)*100;
addChild(mcArr[i]);
//生成した MC の参照に対してイベントリスナーを登録
mcArr[i].addEventListener(MouseEvent.ROLL_OVER,onrollOver);
}
function onrollOver(eventObj:Event):void {
//ロールオーバーイベントを受けたインスタンスを取得
var target_mc:MovieClip=MovieClip(eventObj.currentTarget);
//そのインスタンスをフェードアウト
TransitionManager.start(target_mc, {type:Fade, direction:Transition.OUT, duration:2, easing:None.easeNone});
//そのインスタンスのイベントリスナーを削除
target_mc.removeEventListener(MouseEvent.ROLL_OVER,onrollOver);
}
//配列に MC が入っているかどうかの検証(本題とは関係なし)
mcArr[5].alpha = 0.5;
mcArr[6].rotation = 45;
//-------------------------------------------
細かい部分も変えていますが
要するに 配列を作っても作らなくても
addEventListener(MouseEvent.ROLL_OVER,onrollOver);
をする位置は同じ(この位置を考えましょう)ということです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- スピーカー・コンポ・ステレオ MCカートリッジのオススメを教えてください。 お時間割いてくださりありがとうございます。 当方、現在 10 2022/07/04 14:20
- アイドル・グラビアアイドル 嵐の中でも櫻井翔がMC向き扱いだったけど。 むしろ バラエティやらみていて 爺ちゃん ばあちゃん 国 2 2022/12/03 19:49
- 情報・ワイドショー タレントMC 5 2023/06/23 06:44
- BTOパソコン https://www.youtube.com/watch?v=8h8EVXotOwQ&t=14s 2 2022/12/23 02:25
- 工学 材料力学(構造力学?)についての問題です。 写真のような形で部材CDの内力を考えます。 C点からの距 1 2022/11/22 00:41
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/07 21:04
- バラエティ・お笑い はやくも、今年の27時間テレビを予想しましょう!どう思いますか? 4 2023/03/04 10:24
- デスクトップパソコン 動画編集で使うデスクトップで今から5年使えるパソコンスペックってどんなのですか?ドスパラで考えていま 5 2023/01/08 12:26
- バラエティ・お笑い もう見たくない番組は、相席千鳥とサンマのお笑い向上委員会ですが、誰向け? MCを笑わせるだけやん。 2 2022/04/20 09:59
- その他(テレビ・ラジオ) テレビ朝日でMCをしている元日本テレビの羽鳥アナウンサーが頭の悪い長嶋一茂と石原良純の遣りたい放題で 5 2022/12/29 18:58
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
画像表示をアルファでフェード...
-
○秒間実行 AS3
-
アセンブリ言語のcasl2について...
-
photoshopで書いた四角の枠の中...
-
python ボタンを押すと複数の関...
-
VBAからPDFのテキストフィールド
-
RPG(AS400)の本、サイトってあ...
-
【VB.NET】別Formのボタンが押...
-
static関数がmapファイルに載ら...
-
VBAで改行の入ったデータの正規...
-
accessの検索について質問です...
-
360度パノラマ写真をループでき...
-
AS3.0 でフェードイン、
-
フォームのテキストの入力数字...
-
【Photoshop】レイヤー効果の境...
-
場面が移り変わるときかっこよ...
-
外部テキストファイルより座標...
-
Flashでレーダーチャート
-
多言語を混在できるか。
-
ウインドウハンドルとインスタ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
画像表示をアルファでフェード...
-
ムービークリップ変換について...
-
ActionScript スクロールメニュー
-
何で重なり合おうとするんでし...
-
ステージにある複数のインスタ...
-
for文を使ったボタン
-
配列に入れたムービークリップ...
-
○秒間実行 AS3
-
Actionscript3.0 子のイベント...
-
Actionscript3.0のクラス定義の...
-
FLASH 定型のASを登録しといて...
-
addChildの使い方
-
外部テキスト読み込みでマーキ...
-
AS3の配列の中にアクセス
-
関数を停止するには。。。。
-
as3 addEventListenerの動的な...
-
actionscript3.0 オブジェクト...
-
actionscript3.0 データ型について
-
複数mcのランダム再生とmc指定...
-
photoshopで書いた四角の枠の中...
おすすめ情報