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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     分岐処理で
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sama_night
Åê¹ÆNo.15915
投稿日時: 2005-3-11 15:39
常連
居住地:
投稿: 78
使用環境:
WINXP,FlashMX,Flash8
分岐処理で
お世話になります。

ボタンAを押すと、ムービクリップAが、別の座標値に移動するようになっています。これを段階を踏んで、移動させるというものを作っています。

例えば、現在の座標値が(100,100)にあるムービクリップAが
(-200,300)に移動させるとします。

on (press) {
x = -200;
y = 300;
}

上記のスクリプトだと、斜め移動します。

それを、(100,100)→(100,300)→(-200,300)
といった段階を踏んだ座標移動を考えました。

以下が、改良したスクリプトです。

on (press) {
y = 300;
time = getTimer();
this.onEnterFrame = function() {
if (nowtime-time<-200) {
nowtime = getTimer();
}
else {
x = -200;
delete this.onEnterFrame;
}
}
}

そこで、さらに汎用性の高いものにしたいと
思っているのですが、行き詰まってしまいました。

どのようにしたいかというと、

いま、終着する座標が常に、
(-200,300)なのですが、

これを、ムービクリップAの現在いる
場所によって、終着点をかえたいと思っています。

分岐処理の流れの書き方が、うまくいかず
手詰まりになっています。お知恵をお貸しください。
空野大二郎
Åê¹ÆNo.15918
投稿日時: 2005-3-11 16:22
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: 分岐処理で
 まいど。

 ボタンAが押されると、ムービクリップAの[_x,_y]座標プロパティを
参照して値を取得し、それを基準値としてonEnterFrame
イベントハンドラの中で条件分岐されればよいと考えられます。

引用:
sama_nightさんは書きました:
いま、終着する座標が常に、
(-200,300)なのですが、

これを、ムービクリップAの現在いる
場所によって、終着点をかえたいと思っています。

分岐処理の流れの書き方が、うまくいかず
手詰まりになっています。お知恵をお貸しください。


 余談:sama_nightさんのスクリプト中にある変数「x」や「y」は、
ムービークリップAが常に参照しているのでしょうか?
 掲示されているスクリプトでは、フォーラム参加者からは
動作確認できないと考えられます。


----------------
空野 大二郎 アニメーター作家
桜の道

sama_night
Åê¹ÆNo.15919
投稿日時: 2005-3-11 16:38
常連
居住地:
投稿: 78
使用環境:
WINXP,FlashMX,Flash8
Re: 分岐処理で
>ボタンAが押されると、ムービクリップAの[_x,_y]座標プロパテ>ィを参照して値を取得し、それを基準値としてonEnterFrame
>イベントハンドラの中で条件分岐されればよいと考えられます。

すいません。まだまだアクションスクリプト初心者なもので、
言葉の意味が少々、理解しきれてません。
もうすこし、噛み砕いて、説明いただけないでしょうか。

>sama_nightさんのスクリプト中にある変数「x」や「y」は、
>ムービークリップAが常に参照しているのでしょうか?

常に参照しています。

ムービクリップAを制御しているコントローラAが
あり、以下のようなスクリプトで制御しています。

コントローラA(ムービクリップ)

//制御用のスクリプト
startx = getProperty(/:ムービクリップのインスタンス名, _x);
starty = getProperty(/:ムービクリップのインスタンス名, _y);
horizontalno = /:x-startx;
vertikalno = /:y-starty;
setProperty(/:ムービクリップのインスタンス名, _x, startx+(horizontalno/2));
setProperty(/:ムービクリップのインスタンス名, _y, starty+(vertikalno/2));
空野大二郎
Åê¹ÆNo.15926
投稿日時: 2005-3-12 0:18
職人
居住地: 愛知
投稿: 389
使用環境:
 XP:Home
FlashMX
IE6.0+FlashPlayer7,0,19
CPU:Pentium4 2.26GHz
メモリ:1,024MB
Re: 分岐処理で
 まいど。
 かみ砕いてみます。

 「投稿No.15915のスクリプト」と「コントローラーAの
スクリプト」を見せて頂いた限りでは、プロパティの参照・定義方法が
異なっています。
 前者が『ドットシンタックス(Flash5以降)』、後者が
『スラッシュと関数(Flash4)』ですね。

 推測ですが、既成のコントローラーAのスクリプトを用いて、
sama_nightさんがアレンジして運用しようとされているように
見受けられます。

 コントローラーAの変数「startx」では、getProperty()関数を
用いて、ムービクリップAのプロパティ[_x]を参照しています。
 このスクリプトをお使いになられている限りでは、
ムービークリップAのX座標やY座標の取得(MovieClipの
[_x][_y]プロパティの参照)がおできになるととらえられます。

 もし、不安があるようでしたら、ご利用になっている関数や
MovieClipプロパティについて、Flashのヘルプやリファレンスを
使って調べてみてください。


 さて、本題です。
 3つのオブジェクトの構成が不確かでは、ターゲットパスの
記述を正しく行えませんので、推測で構成をとらえてみます。
 (正しくない場合は、訂正をお願いします。)

 <構成>
_root.ボタンA (Button:ボタンイベントでムービークリップAを
移動させる)
_root.ムービークリップA (MovieClip:移動対象)
_root.コントローラーA (MovieClip:指定されたムービークリップの
座標をコントロールする)

 <スクリプト>
 まずは、ムービクリップAの[_x,_y]座標を取得してください。

 _root.ボタンAの、ボタンアクションに記述
on (press) {
	y = 300;
	time = getTimer ();
 
	/*ムービークリップAの初期座標を取得*/
	iniX = this._parent.ムービクリップAのインスタンス名._x;
	iniY = this._parent.ムービクリップAのインスタンス名._y;
 
	/*座標取得の確認*/
	trace("iniX, iniY = " + [iniX, iniY]);
 
	this.onEnterFrame = function () {
		/*省略*/
	};
}

 注意:プロパティの参照には、ドットシンタックスを使わせて
頂きます。

 <確認>
 「制御>>ムービープレビュー」でプレビューを表示させ、
ボタンを押してtrace()された座標の値が、正しく表示されているか
確認してください。

 正しく表示されている場合は、それが『ムービクリップAの
現在いる場所』です。
 座標が取得できれば、あとはsama_nightさんがお望みの通りの
条件分岐を施されればよいと考えられます。


----------------
空野 大二郎 アニメーター作家
桜の道

ひろゆき
Åê¹ÆNo.15928
投稿日時: 2005-3-12 0:44
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 分岐処理で
引用:
 推測ですが、既成のコントローラーAのスクリプトを用いて、
sama_nightさんがアレンジして運用しようとされているように
見受けられます。

http://www.flashforum.de/forum/showthread.php?s=ddb39d9a22719f3e1b9f4ca5bf0d190e&p=1155821
これが原文かな?


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

sama_night
Åê¹ÆNo.15962
投稿日時: 2005-3-14 16:57
常連
居住地:
投稿: 78
使用環境:
WINXP,FlashMX,Flash8
Re: 分岐処理で
丁寧に解説頂きありがとうございました。
なんとなくですが、方向性が見えたようなかんじです。
ありがとうございました。

そちらのスレッドにも同じ内容のものがありますね。
原文は、とある海外の有名サイトですね。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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