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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   迷える子羊の部屋【初心者専用】
     「クリックされたら」「?のイベントが発生したら」の命令文について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
sasanuma
Åê¹ÆNo.45652
投稿日時: 2010-9-6 16:49
半人前
居住地:
投稿: 42
使用環境:
MacOS10.5,flash(CS4)AS3
「クリックされたら」「?のイベントが発生したら」の命令文について
ステージにシャッフルボタン(ムービークリップ)とmc(ムービークリップ)があります
「シャッフルボタンをクリックするとmcが減速移動してランダムな座標に向かう」
という風にしたいのですが、シャッフルボタンをクリックしてランダムな座標に移動することはできるのですが、座標までの減速移動ができなくて悩んでます
mcに
----------------------------------------------
var nDist:Number = 0.15;
addEventListener(Event.ENTER_FRAME, xMove);
function xMove(e:Event):void {
if(parent.shuffle_btn == true){   ←☆☆☆
x += x * nDist;
y += y * nDist;
}
}
-----------------------------------------------
という命令を入れたのですが、☆☆☆の部分を
「クリックされたら」もしくは「shuffleのクリックイベントが発生したら」
というようにしたいのですが、どうしたらいいでしょうか?
よろしくお願い致します
野中文雄
Åê¹ÆNo.45653
投稿日時: 2010-9-6 17:04
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 「クリックされたら」「?のイベントが発生したら」の命令文について
DisplayObject.enterFrameイベント(定数Event.ENTER_FRAME)のリスナー関数(xMove())内でフラグ変数を判定するという考え方がおそらく誤りです。「シャッフルボタンをクリック」したらDisplayObject.enterFrameイベントにリスナー関数を登録する(EventDispatcher.addEventListener()メソッドを呼出す)とすればよいのではないでしょうか。
引用:
sasanumaさんは書きました:
mcに
var nDist:Number = 0.15;
addEventListener(Event.ENTER_FRAME, xMove);
function xMove(e:Event):void {
	if(parent.shuffle_btn == true){   ←☆☆☆
		x += x * nDist;
		y += y * nDist;
	}
}

という命令を入れたのですが、☆☆☆の部分を
「クリックされたら」もしくは「shuffleのクリックイベントが発生したら」
というようにしたいのですが、どうしたらいいでしょうか?


----------------
 

c-geru
Åê¹ÆNo.45654
投稿日時: 2010-9-6 17:17
職人
居住地: 文京区本郷
投稿: 209
使用環境:
10.6.8+ CS5.5
Win7+ CS4
Re: 「クリックされたら」「?のイベントが発生したら」の命令文について
使用環境が書いていないのですが、addEventListenerを使っているのでAS3.0前提で。
下記のようにボタンとmcの処理を分ければいいのでは?

shuffle_btn.addEventListener(MouseEvent.CLICK,onClick_btn);
function onClick_btn (e:MouseEvent):void {
mc.addEventListener(Event.ENTER_FRAME,xMove);
}

function xMove (e:Event):void {
//(指定点までの移動処理)
}

移動が終わった後に、

mc.removeEventListener(Event.ENTER_FRAME,xMove);

で処理を終了するのを忘れずに。
sasanuma
Åê¹ÆNo.45655
投稿日時: 2010-9-6 17:21
半人前
居住地:
投稿: 42
使用環境:
MacOS10.5,flash(CS4)AS3
Re: 「クリックされたら」「?のイベントが発生したら」の命令文について
野中文雄様
早速回答ありがとうございます。
<「シャッフルボタンをクリック」したらDisplayObject.enterFrameイベントにリスナー関数を登録する(EventDispatcher.addEventListener()メソッドを呼出す)とする>というのは以下のようなことでしょうか?
下のスクリプトは最初に試したものですが減速移動されなかったので他の方法考えてさっきのうようになったのですが、この方法からクリックでランダムな座標に減速移動することは可能でしょうか?タイトルの質問と違うことになりますので無視していただいても結構です、すいません。
---------------------------------------------------------
var nDist:Number = 0.15
shuffle_btn.addEventListener(MouseEvent.CLICK, SHUFFLE);
function SHUFFLE(event:MouseEvent):void{
mc.addEventListener(Event.ENTER_FRAME, xMove);
function xMove(event:Event):void{
mc.x += x * nDist;
mc.y += y * nDist;
}
mc.x=Math.floor(Math.random()*800);
mc.y=Math.floor(Math.random()*600);
}
----------------------------------------------------------
ひろゆき
Åê¹ÆNo.45656
投稿日時: 2010-9-6 17:32
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 「クリックされたら」「?のイベントが発生したら」の命令文について
そもそも減速させるスクリプトになっていないように思いますが。

shuffle_btn, mcが配置されているステージのフレームに記述。
var xTarget:Number;
var yTarget:Number;
var nDist:Number = 0.15;

shuffle_btn.addEventListener(MouseEvent.CLICK, click);

function click(vet:MouseEvent):void {
	xTarget = Math.random()*stage.stageWidth;
	yTarget = Math.random()*stage.stageHeight;
	addEventListener(Event.ENTER_FRAME, xMove);
}
function xMove(evt:Event):void {
	mc.x += (xTarget - mc.x)*nDist;
	mc.y += (yTarget - mc.y)*nDist;
	if (Math.abs(xTarget - mc.x) < 0.5 && Math.abs(xTarget - mc.x) < 0.5) {
		removeEventListener(Event.ENTER_FRAME, xMove);
	}
}


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

野中文雄
Åê¹ÆNo.45657
投稿日時: 2010-9-6 17:33
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 「クリックされたら」「?のイベントが発生したら」の命令文について
[1]「シャッフルボタンをクリックしてランダムな座標に移動する」スクリプトをお示しください。
[2]「クリック」せずに、「ランダム」でない決まった「座標までの減速移動」するスクリプトを作成してください。

[1][2]ともおできになれば、これらを組合わせるだけです。もし、[2]がおできにならないのでしたら、「クリックされたら」は現在の課題に関係がありません。→【問題を切分けない


----------------
 

野中文雄
Åê¹ÆNo.45660
投稿日時: 2010-9-6 17:52
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 「クリックされたら」「?のイベントが発生したら」の命令文について
拙著『ActionScript 3.0プロフェッショナルガイド』4.5「イーズアウトの公式」p.150-153を抜粋(PDF)しましたので、こちらをお読みください。
引用:
Fumioは書きました:
[2]「クリック」せずに、「ランダム」でない決まった「座標までの減速移動」するスクリプトを作成してください。


----------------
 

sasanuma
Åê¹ÆNo.45669
投稿日時: 2010-9-7 12:19
半人前
居住地:
投稿: 42
使用環境:
MacOS10.5,flash(CS4)AS3
Re: 「クリックされたら」「?のイベントが発生したら」の命令文について
c-geru様 ひろゆき様 野中文雄様
回答ありがとうございます。
<「クリック」せずに、「ランダム」でない決まった「座標までの減速移動」するスクリプト>ができていませんでした。が、ひろゆき様のスクリプトと野中文雄様のpdfで理解することができました。何ができていないのかもわかってとてもスッキリしました!どうもありがとうございました。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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