- ベストアンサー
3D表現の制御
Flash初心者です。よろしくお願いします。 以下のサイトをもとにぐるぐる回る物体をつくりました。 http://www.procreo.jp/tutorial03.html 回っているムービークリップそれぞれに回転する式を記述してます。 それぞれマウスオーバーしたときに、動きを停止し、 マウスアウトしたら、また動き出すようにしたいのですが、どうすればよいでしょうか?
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
まず,変数のフラグを立てて, 各ムービークリップの on (rollOver) でフラグを倒し, 各ムービークリップの on (rollOut) でフラグを立て直し, フラグが立っているときだけ, 各ムービークリップの onClipEvent (enterFrame) が動くようにすれば良いのではないでしょうか。 具体的に書くと次の通りです。 まずメインムービーのタイムラインに, 新規レイヤーを追加して, その新規レイヤーの フレーム1 の空白キーフレーム に, 次のように↓書きます(コピペ可能)。 ------------------------------------------ // 変数 flag(フラグ(旗)) の初期値を設定 var flag = 1; ------------------------------------------ そして, 4つある各ムービークリップの, onClipEvent (enterFrame) 以降を書き替えます。 ------------------------------------------ onClipEvent (enterFrame) { radian = Math.PI/180*degree; this._x = centerx+r*Math.cos(radian); this._y = centery+r*Math.sin(radian)/2; this._xscale = this._yscale=this._alpha=this._y; degree += 5; } ------------------------------------------ ↓書き替え変更↓ ------------------------------------------ onClipEvent (enterFrame) { if (_root.flag == 1) { radian = Math.PI/180*degree; this._x = centerx+r*Math.cos(radian); this._y = centery+r*Math.sin(radian)/2; this._xscale = this._yscale=this._alpha=this._y; degree += 5; } } on (rollOver) { _root.flag = 0; } on (rollOut) { _root.flag = 1; } ------------------------------------------ 4つとも全く同じ書き換えです。 これで行けるとおもいます。
お礼
ありがとうございます。 出来ました。