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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   コーダーズルーム【スクリプト系】
     回転角度の収束について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kogua
Åê¹ÆNo.37567
投稿日時: 2008-2-13 16:17
半人前
居住地:
投稿: 51
使用環境:
WindowsXPsp3,FlashCS3
回転角度の収束について
回転の動きに、バネのような収束する動きをつけたいのですが
うまくいかない点があり、困っています。

状況は
ステージに置いたMC(名:kaiten_mc)に
onClipEvent (load) {
myR = 0;
nr = 0;
}
onClipEvent (enterFrame) {
nr = nr*0.6+(myR-this._rotation)/1.2;
this._rotation += nr;
}

ステージに置いたボタンに
on (release) {
_root.kaiten_mc.myR += 15;
}

と記述します。

ボタンを押すと、kaiten_mcの角度が15度ずつ
回転するのですが、そのときにバネのように
収束しながら、回転が徐々に止まる、という風に
したいのです。

上記のようにすると、180度に至るまでは
意図したように動作するのですが
180度になった瞬間に、おかしくなってしまいます。

原因はなんとなくわかっていて
_rotationの値が、?180?180の値で動作するからですよね?
195度を?165度として扱ってしまうので
差分の計算がおかしくなってしまうという。

ですが、この意図したような動きを
180度を越えてもずっとしているサイトを
見たことがあるので、何か別の方法で
実現できるのではないかと、ご相談したしだいです。

いろいろ調べたり考えたりしたのですが
思いつきません。

誰か、教えていただけないでしょうか。

野中文雄
Åê¹ÆNo.37568
投稿日時: 2008-2-13 16:59
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 回転角度の収束について
値が非連続に変化しない「ものさし」を使って計算すればよいでしょう。
引用:
koguaさんは書きました:
原因はなんとなくわかっていて
_rotationの値が、?180?180の値で動作するからですよね?
195度を?165度として扱ってしまうので
差分の計算がおかしくなってしまうという

onClipEvent (load) {
	myR = 0;
	nr = 0;
	var nRotation:Number = _rotation;
}
onClipEvent (enterFrame) {
	// nr = nr*0.6+(myR-this._rotation)/1.2;
	nr = nr*0.6+(myR-nRotation)/1.2;
	// this._rotation += nr;
	nRotation += nr;
	this._rotation = nRotation;
}
// ステージに置いたボタンに
on (release) {
	_root.kaiten_mc.myR += 15;
}


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

kogua
Åê¹ÆNo.37569
投稿日時: 2008-2-13 17:13
半人前
居住地:
投稿: 51
使用環境:
WindowsXPsp3,FlashCS3
Re: 回転角度の収束について
早速のご返答ありがとうございます。

野中さんの書かれたようにして
試してみたのですが、作動しませんでした。

trace(_root.kaiten_mc.nRotation);として
値をみてみると、最初からNaNと出ています。

ボタンを押してもmyRの値が
加算されていくだけで
MCは回転しませんでした。

なぜなんでしょう。
野中文雄
Åê¹ÆNo.37570
投稿日時: 2008-2-13 17:23
ちょんまげら
居住地: 東京
投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1)
Re: 回転角度の収束について
私の環境では、問題なく「作動」します。というより、動作したスクリプトをコピー&ペーストしました。

[パブリッシュ設定]で[ActionScript 1.0]書出しにしていませんか?いずれにしても、変数値が正しく設定されていないということです。
引用:
koguaさんは書きました:
野中さんの書かれたようにして
試してみたのですが、作動しませんでした。

trace(_root.kaiten_mc.nRotation);として
値をみてみると、最初からNaNと出ています。


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

kogua
Åê¹ÆNo.37571
投稿日時: 2008-2-13 17:46
半人前
居住地:
投稿: 51
使用環境:
WindowsXPsp3,FlashCS3
Re: 回転角度の収束について
書き出しをActionScript 1.0にしてました。

2.0にしたら作動しました。

また、:Numberを無くしたら
ActionScript 1.0でも作動しました。

ありがとうございます。

勉強になりました。
ひろゆき
Åê¹ÆNo.37580
投稿日時: 2008-2-14 1:50
ちょんまげら
居住地: 東京砂漠
投稿: 4403
使用環境:
10.8.5

Flash Professional CS4/CS6/CC

Safari 6.1
Re: 回転角度の収束について
変数の代入と初期値の必要性について質問です
には、レスをおつけにならないのでしょうか?

#ご自分が投稿された記事は、ログインして「アカウント情報」で確認できます。


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

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

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