プロが教える店舗&オフィスのセキュリティ対策術

これをなんとかやってみようと試行錯誤してますがうまくいきません。ロールオーバーさせようとしているMCはマウスがロールオーバーすると拡大するというスクリプトが書かれています。このアクションと同時にマウスのロールオーバー時にテキストをスライドインさせたいのですが、どのようなスクリプトをかけばよいでしょうか? 透明ボタンを作って拡大されたMCとの当たり判定でテキストをスライドインさせる等の試行錯誤をしましたがうまくいきません。どうかご教授よろしくお願いします。

プライベートのチューターとして、時給でチューターを探そうとさえ考えています。

A 回答 (1件)

何か複雑に考えていらっしゃるようですが…,


単に,
「マウスのロールオーバー時にテキストをスライドイン」
これだけのことでしょう?

「ボタンクリックで描いた絵が移動しだす」
これと同じではないですか。

クリックではなくてロールオーバーで,絵ではなくてテキストなだけです。
ボタンでムービー自体や他のムービークリップを動かせば良いだけのことです。


方法は無数にありすぎますが,
簡単には play(); や gotoAndPlay で行けるでしょう。

「stop();とplay();を覚えよう。」
http://1art.jp/flash/le/lesson13/lesson13.htm

「gotoAndStop();とgotoAndplay();を覚えよう。」
http://1art.jp/flash/le/lesson14/lesson14.htm

「ムービークリップのフレームの移動」
http://homepage3.nifty.com/ginga-b/flash5/func_f …

これができないと,
Flash が全く使えていないに等しいですよ。


上記では,ムービークリップを使っていませんが,
テキストがスライドインする,ムービークリップ を作っておいて,
そのムービークリップの フレーム1 に

stop();

を書いてそのムービークリップのスライドインを止めておきます。

そしてそのムービークリップに例えば 「myTXT」 というインスタンス名をつけておいて
拡大するムービークリップの方には

-----------------------------
on (rollOver) {
_root.myTXT.gotoAndPlay(2);
}
on (rollOut, dragOut) {
_root.myTXT.stop();
}
-----------------------------

などと書いておけば良いのではないでしょうか。


////////////////////////////////////////////////


また,

>> マウスがロールオーバーすると拡大するというスクリプトが書かれています。

よくわかりませんがこんな感じでしょうか↓?

------------------------------
on (rollOver) {
this._xscale *= 2;
this._yscale *= 2;
}
on (rollOut, dragOut) {
this._xscale /= 2;
this._yscale /= 2;
}
------------------------------

そしたら,上の場合,

-------------------------
on (rollOver) {
this._xscale *= 2;
this._yscale *= 2;
_root.myTXT.gotoAndPlay(2);
}
on (rollOut, dragOut) {
this._xscale /= 2;
this._yscale /= 2;
_root.myTXT.stop();
}
------------------------

となるだけです。


//////////////////////////////////////////////


ムービークリップのタイムラインを動かすのではなくて,
文字が入っている ムービークリップ 自体を
ActionScript で動かす方法も考えられますね。

任意のテキストを用意し,そのテキストをムービークリップに変換します。
そして,そのテキスト入りムービークリップにインスタンス名を付けます。
ここでも「myTXT」というインスタンス名にしておきます。

そして,拡大するMCの方に次のように書けば良いのではないでしょうか。

-----------------------------------------
// このMCが表示されたとき
onClipEvent (load) {
// 変数 flag の初期値 を 0 にする
var flag = 0;
}

// ロールオーバーしたとき
on (rollOver) {
// 2倍に拡大
this._xscale *= 2;
this._yscale *= 2;
// 変数 flag の値を 1 にする
flag = 1;
}

// ロールアウトしたとき
on (rollOut, dragOut) {
// 元の大きさに戻す
this._xscale /= 2;
this._yscale /= 2;
// 変数 flag の値を 0 に戻す
flag = 0;
}

// 1フレーム進む時間ごとに毎回以下を実行
onClipEvent (enterFrame) {
// もし flag が 1 であれば
if (flag == 1) {
// _root.myTXT の x座標を 5 減算
_root.myTXT._x -= 5;
}
}
-----------------------------------------


////////////////////////////////////////////


>> 透明ボタンを作って拡大されたMCとの当たり判定で
>> テキストをスライドインさせる

そういう方法でも良いでしょうね。
でも複雑すぎて説明できませんし,何故そんなに複雑にしなければならないのか意味がわかりません。
    • good
    • 0

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