こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

Flash マウスの位置で速さの変わるスクロールメニュー

Flashでスクロールメニューを作成したいのですが、うまくいきません。
ボタンを羅列しムービークリップにし、

onClipEvent (load) {
Min = -80*15;
speed = 20;
}
onClipEvent (enterFrame) {
if (_parent.mask.hitTest(_root._xmouse,_root._ymouse,0)) {
this._x -= _parent.mask._xmouse/speed;
if (this._x >0) {
this._x += Min;
} else if (this._x < Min) {
this._x -= Min ;
}
}
}


上記のスプリクトを記述することで動かすことには成功しました。
しかし上記スプリクトでは、ドキュメントサイズ内では、メニューにマウスオーバーしないと制止してしまいます。

http://www.sophia-eternal.com/

上記サイトの様に、読み込んだ時から常にゆっくりスクロールし、
マウスオーバーした時にのみ動きの速さを変えるにはどのようなスプリクトを追加すればよろしいでしょうか?

メニューのみのFlashファイルを作成し、HTMLで組み立てれば早いのですが、
デザイン上、ページ全体を1つのFlashファイルで作成するしかありません。

メニューが常にスクロールしていて、マウスオーバーした時にのみ動きの速さが変わる様にしたいのです。

宜しくお願い致します。

投稿日時 - 2007-02-07 15:32:07

QNo.2731868

困ってます

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

ANo.1

楽しそうなので作ってみました。
以下のような物はいかがでしょうか。

〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓
speed = 5;
return_x = -330;

function movePict() {
var x = a1_mc._x;
if (x < return_x) {
a1_mc._x = 0;
} else if( x > 0) {
a1_mc._x = return_x;
} else {
a1_mc._x -= speed;
}
}

function changeSpeed() {
x = a2_mc._xmouse;
w = a2_mc._width;
speed = (x - w / 2) * 0.2;
}

a2_mc.onRollOver = changeSpeed;
a2_mc.onMouseMove = changeSpeed;
this.onEnterFrame = movePict;
〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓〓

投稿日時 - 2007-02-08 00:09:12

補足

ご回答いただき、ありがとうございます!
しかし私に専門知識がないため、上手く動作できませんでした、、、
ご回答いただいたスプリクトですとonClipEvent ハンドラ内にとのエラーが出るので、


onClipEvent (load) {


speed = 5;
return_x = -330;

function movePict() {
var x = a1_mc._x;
if (x < return_x) {
a1_mc._x = 0;
} else if( x > 0) {
a1_mc._x = return_x;
} else {
a1_mc._x -= speed;
}
}

function changeSpeed() {
x = a2_mc._xmouse;
w = a2_mc._width;
speed = (x - w / 2) * 0.2;
}

a2_mc.onRollOver = changeSpeed;
a2_mc.onMouseMove = changeSpeed;
this.onEnterFrame = movePict;

}

にしましたが動作しません...

宜しければ詳しく教えていただけませんでしょうか?

宜しくお願い致します。

投稿日時 - 2007-02-08 10:22:44

あなたにオススメの質問