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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     ボタンシンボルを押すと指定の位置に移動するActionScript
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
youtan
Åê¹ÆNo.28318
投稿日時: 2006-8-30 21:28
新米
居住地:
投稿: 13
使用環境:
Mac OS 10.4.7 Flash8
ボタンシンボルを押すと指定の位置に移動するActionScript
皆様、はじめまして。いつも参考にさせて頂いています。はじめて質問させて頂きます。

http://www.geocities.jp/human_lost_music/sitsumon.html

文章ではなかなか質問の意味がわかりずらそうだったので、図などを交えて上記URLで質問の意味を説明しています。上記URLにアクセスして頂けますでしょうか?(これから下の文章は読んでいただかなくても上記URLで説明しています)

簡単に説明しますと、

ステージに7枚の画像を横に並べています。しかし、ステージ内にあるのは真ん中の1枚と左右の一部分のみです。そして、ステージ上部にはその7枚分のメニューを7つボタンシンボルを配置していて例えば画像2に相当するボタンシンボルをクリックすると画像2がステージの真ん中に来る、画像6に相当するボタンシンボルをクリックしたら画像6がステージの真ん中に来るというようなActionScriptを記述したいのです。
しかし、僕はActionScriptをまったくやったことがなく、このために本を買ったのですが、どこをみていいのかわかりません

現状を説明しますと、シーンを7シーン用意してまして、まず最初「シーン1(HOME)」が<図1>の状態、つまり画像1が真ん中にある状態でフレームの最後で画像1にフレームアクション「stop();」を指定しています。この画像1が真ん中にある状態で閲覧者がたとえばメニューの”BIOGRAPHY”をクリックすると「シーン2(BIOGRAPHY)」の2フレームに飛ばすようにしています。1フレーム目は「シーン1」の最後のフレームをフレームコピーしてペーストしています。ちなみにシーン1以外の全てのシーンの1フレーム目は「シーン1」の最後のフレームコピーです。

 しかし、このようにシーンを飛ばす方法を使うと画像1が真ん中にある状態でメニューがクリックされた時用にシーンが他に6コ必要ですよね。次に画像2が真ん中にある状態用にも6コ必要なので7×6で合計42シーン必要になってくるのです。それではあまりにもファイルサイズが重くなってしまうので、ActionScriptとかを使えばシーンを切り替える方法じゃなくてできるのかなあと思い、質問させていただきました。ActionScriptについてはまったく知識がなく、これを解決する為に本を買いましたがどこを見ていいのかわからず・・頓挫しているところです。

詳しくは上記URLを御覧下さい。ちなみにその試作もアップしています。

http://www.geocities.jp/human_lost_music/piano_home.html

このページはボリュームは低いですが音楽が流れますので御注意下さい。

それでは長々と失礼致しました。よろしく御教授ください。
ひろゆき
Åê¹ÆNo.28323
投稿日時: 2006-8-30 22:32
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ボタンシンボルを押すと指定の位置に移動するActionScript
サンプル

こういう動きで構わないのであれば...。

シーンは1シーンのみ、また、フレームも1フレームのみです。
なので、新規に作り直された方が良いでしょう。

まず、photo というシンボルを作成し、そこに画像1?7を配置します。
左から順に画像1?7としておいた方が良いでしょう。
画像4がシンボル(photo)の中心にくるように配置します。

次に、シンボル(photo)を _root に配置して、インスタンス名を photo_mc とします。

また、ボタンを _root に配置して、インスタンス名を btn1?btn7 としておきます。

_root 第1フレームに
//画像の横幅
var photoWidth = 300;
//ステージの中心位置(x座標)
var xCenter = 250;
for (var n = 1; n <= 7; n++) {
	var _btn = this["btn"+n];
	_btn.targetPos = xCenter - photoWidth*(n-4);
	_btn.onRelease = function() {
		movePhoto(this.targetPos);
	};
}

function movePhoto(targetPos) {
	var deceleration = 0.2;
	photo_mc.onEnterFrame = function() {
		this._x += (targetPos - this._x)*deceleration;
		if (Math.abs(targetPos - this._x) < 0.5) {
			this._x = targetPos;
			delete this.onEnterFrame;
		}
	};
}
と記述。
#このフォーラム内のスクリプトをコピー&ペーストされるのであれば、
#各行の先頭にあるスペースを削除して、ご自分でタブキー入力してください。


----------------
質問する際は、回答者に具体的な情報を与えてください。

youtan
Åê¹ÆNo.28331
投稿日時: 2006-8-31 1:42
新米
居住地:
投稿: 13
使用環境:
Mac OS 10.4.7 Flash8
Re: ボタンシンボルを押すと指定の位置に移動するActionScript
>ひろゆき様
早速ありがとうございます!

すみません。。もっと具体的な内容を記載するべきですね。
ステージのサイズは800×700で一枚の画像のサイズが480×640です。真ん中にくる画像の座標はX座標が160、Y座標が40となっております。

ひろゆき様がサンプルで作成していただいた動きです、まさに!!しかし、またここで疑問が・・・

一番端にある1と7は真ん中に来た時隣がないですよね。そこで、画像が円を描いて繋がっていると考えて1が真ん中に来た時の左隣は7、逆に7が真ん中に来た時の右隣は1にしたいのですが、それはさらに画像をつなげればいいだけの話でしょうか?

あと、大変お恥ずかしい話なのですが、

>まず、photo というシンボルを作成し、

とありますが、これはムービークリップのシンボルですよね?

また

>次に、シンボル(photo)を _root に配置して、

とありますが、_rootに配置してというのがよく理解できていません。。これはタイムラインのフレームのことでしょうか?ActionScriptを全く理解していないので・・・。


重ね重ねすみませんが、教えて頂けると幸いです。よろしくお願い致します!!



ひろゆき
Åê¹ÆNo.28335
投稿日時: 2006-8-31 9:02
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: ボタンシンボルを押すと指定の位置に移動するActionScript
引用:
youtanさんは書きました:
一番端にある1と7は真ん中に来た時隣がないですよね。そこで、画像が円を描いて繋がっていると考えて1が真ん中に来た時の左隣は7、逆に7が真ん中に来た時の右隣は1にしたいのですが、それはさらに画像をつなげればいいだけの話でしょうか?

まず、目の前の動きを実現することが先では?

前述したスクリプトは、画像がループすることを考慮していない単純なものですが、
どうして、そのような動きが実現できるのか、理解されることでは?


photoは、ムービークリップ・シンボルですね。失礼しました。

基本的には、flaファイルを開いたときに"シーン1"と表示されている
ステージ(画面)が_rootです。


Flash ActionScript Helper: ターゲットパス
Flash ActionScript Helper: シンボルとインスタンス
は、きちんとお読みになっておかれた方が良いように思います。


あえてキツいことを。
初心者だから、というのは、あまり意味をなさないように思います。
初心者であるという情報では、何も対応できないからです。
むしろ、初心者であることを前面に押し出すのは、
回答者が、かえって回答する気を失う情報でしかない場合もあるでしょう。

真・コンピュータ用語辞典 : すいません。本当に初心者です。
真・コンピュータ用語辞典 : 初心者
真・コンピュータ用語辞典 : 初心者の特権
真・コンピュータ用語辞典 : 初歩的な質問

初心者ギタリストがいたとして、
「何の曲なら弾けるの?」と尋ねているのに、
「初心者なので」と答えられても、どうしようもないでしょうし、
失敗するたびに「初心者なので」と言われても...。

むしろ...。
 これは分かるが、これこれは分からない。
 こういうことをしたが、こうなってしまって、躓いている。
といった情報を、第三者にも分かるように具体的に説明することの方が
はるかに重要でしょう。


----------------
質問する際は、回答者に具体的な情報を与えてください。

youtan
Åê¹ÆNo.28337
投稿日時: 2006-8-31 9:59
新米
居住地:
投稿: 13
使用環境:
Mac OS 10.4.7 Flash8
Re: ボタンシンボルを押すと指定の位置に移動するActionScript
>ひろゆき様

返信が遅れまして申し訳ございません。毎回ご丁寧にありがとうございます。

ひろゆき様のおっしゃる通り、初心者であるという事でちょっと甘えていた部分がありました。やってみる前に頭で考えて理解できないのですぐ質問していた状態でした。
まず、やってみて試行錯誤してみて一生懸命試してみてもそれでも駄目な場合は質問させていただくべきですね。本当に申し訳ございません。

今は仕事中なので、できませんが、自宅に戻ってからまたトライしてみます!!!経過は報告いたします。

よろしくお願い致します!
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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