| Name |
ken |
| Date |
2002年11月03日 (日) 18時35分 |
| Message |
こんにちわ。フラッシュのことでおききしたいことがあります。
掲載したURLでサイトをつくっているのですが、top、PRICE,map,bbs,mail
と各ボタン順にクリックしていくとメインの画面が右に徐々に動くんですが、たとえば、メールの画面を見たあとにpriceのボタンをクリックすると左にじょじょにうごかずいきなりジャンプしてしまいます。
メールの画面からpriceやmapのボタンを押したら左に動きながらその画面に移動したいのですが、どのようにしたらいいのでしょうか?
よろしくおねがいいたします。 |
| Home
or Link |
http://www.f320.com |
Response
01
|
| 2002年11月04日
(月) 03時20分> 憲ちゃん
|
|
kenちゃん、はじめまして(*^-^*)
同じケンチャンなので親近感がありますね(笑)
URL拝見しましたが・・・
と、いうか、TOPから順番にボタンを押す以外は、ボタンと画面が一致しないですね(;^_^Aアセアセ・・・
それと、ボタンの反応が不安定ですよ!!
文字をボタンにするときは「ヒット」フレームに、反応する範囲の図形を入れると解決します♪
それに関しては「Lesson4」の”410”を見てください(^^g/~~
で、本題の”メールの画面からpriceやmapのボタンを押したら左に動きながらその画面に移動したい”ためには、
単純に左から右に再生するタイムライン上だけではちょとしんどいかもしれません!
やってやれないことはありませんが・・・それぞれのバリエーションをムービークリップなどで
作る必要があり面倒です(笑)
この場合は、過去記事「ボタンに擦り寄るスライダー!」の応用で、アクションスクリプトで作るほうが簡単です!
アクションスクリプトの場合も方法はいろいろ考えられますが、ひとつのやりかたとして・・・

1.メニューボタンに対応する各コンテンツを横長の帯に配置して、それをムービークリップにします。
@サンプルは「400×80ピクセル」のコンテンツを5枚並べ、座標計算しやすいように、
左隅がムービークリップの中心点(0,0)にくるように配置します。
※座標計算は常にインスタンスの中心点の位置が基準になるからです(^^)
Aそして、これをサンプルでは本体ステージのx=20,Y=20の位置に配置しています。
Bさらに、これを各ボタンからアクションを使ってコントロールしますから、インスタンス名を付ける必要があります。
ここでは「contents」としています。
2.各ボタンには、以下のボタンアクションを設定。
on (release) { ←クリックされたら
_root.contents.contentNum = 0;←インスタンス名「contents」にある「contentNum」の値を「0」に
_root.contents.gotoAndPlay(2);←同じくそのインスタンスの2フレームに移動して実行せよ!
}
※この「contentNum」の値は「TOP」の値で、以下「CONTENT1」は「1」、「CONTENT2」は「2」・・・
のように対応するボタンによって順に増やしていきます。
3.次に「contents」インスタンス(ムービークリップ)の中身ですが・・・
図のように必要な図形などのほかに「アクションレイヤー」を追加して、そこに以下のアクションを設定します。
@1フレーム(初期設定)
contentNum = 0;←ボタンで指定するコンテンツ番号ですが、まずは初期値として「0」を代入。
topX = 20; ←上の「1.A」で配置したこのインスタンスの最初のX座標値。
wide = 400; ←1つ分のコンテンツの幅(サンプルは400)
speed = 0.6; ←移動スピードの調整値(適当に変更してください)
A2フレーム(2.のボタンから値を受け取って、このフレームから実行される)
contentX = -(contentNum * wide) + topX;←指定されたコンテンツのX座標値
span = _x - contentX;←現在位置しているX座標値から次に行くコンテンツのX座標値までの距離
B3フレーム(実際に現在の位置を移動させる)
span = span * speed;←距離にspeedの値を掛けて、刻み幅を計算
_x = contentX + span;←本来到達すべきX座標値に刻み幅分だけ自分の位置を近づける。
C4フレーム(ループ)
gotoAndPlay (3);←再度3フレームに戻って、移動をやり直す。
※例えば、2フレームで計算された距離「span」が800だとして、
1回目に3フレームにきたときの「span」の値は「800×0.6」で「480」。
2回目に3フレームにきたときの「span」の値は「480×0.6」で「288」・・
というようにループを繰り返すごとに、本来の「contentX」の値に限りなく近づくという訳です。
サンプルの制作ファイル(slider01.fla)をダウンロードして分析してみてください(*^-^*)
ファイル名を右クリックして「対象をファイルに保存」で取り込めます!
|
|
Response
02
|
| 2002年11月04日
(月) 16時50分> ken |
|
けんちゃんさんありがとうございます!
けんちゃんさんの親切丁寧なお返事に思わず目頭があつくなりました。あかの他人のぼくのためにたいへんわかりやすいご説明でほんとにうるうるきます!尊敬の念さえ感じます!!ほんとにほんとにほんとにありがとうございました!さっそくご説明どおりにやってみようと思います!!!!!某掲示板で同じような質問をしたところ素人はだまってろ!とかぼろくそ言われたのでここで同じ質問をするのをちょっとびくびくしていたのですが、もうなんていったらいいのかわからないくらいうれしいきぶんです!けんちゃんさんさいこー!!!!!
改めてありがとうございました!!
|
|