メイン コーダーズルーム【スクリプト系】 マウスカーソルをmcにし、クリックで通常のマウスカーソルへ | 投稿するにはまず登録を |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
kero835 | Åê¹ÆNo.9883 投稿日時: 2004-8-16 19:40 |
新米 居住地: 投稿: 26
使用環境:
Windows2000, FlashMX2004, IneternetExplorer6.0 |
マウスカーソルをmcにし、クリックで通常のマウスカーソルへ はじめまして、初めて投稿させていただきます。
当方、プログラミングはまったくの初心者です。 この2週間このサイトを中心に勉強させていただいています。 お忙しいところ申し訳ありませんが、是非ご指導お願いいたします。 以下のようなものを作成しようとしています。 ------------------------------------------------------------------ 内容 ------------------------------------------------------------------ 1)クリックされるまで、カーソルは特定のmc(pos_mc)になっている (カスタムカーソル) 2)クリックされた場所に、上記mcを置く。 3)クリックが1度でも実施された場合、マウスカーソルはもともとのマウスカーソル(白い矢印)になる。 ------------------------------------------------------------------ ムービークリップ「pos_mc」のムービーアクション ------------------------------------------------------------------ //1)カーソルは特定のmc onClipEvent (enterFrame) { _x = _parent._xmouse; _y = _parent._ymouse; if (_x >= 380 || _y >= 380) {//x,y座標が380以下の場合だけカスタムカーソル this._alpha = 0; Mouse.show(); } else { this._alpha = 100; Mouse.hide(); } } //2)クリックされた場所に、mcを配置 onClipEvent (mouseDown) { _x = _parent._xmouse; _y = _parent._ymouse; } //3)もともとのマウスカーソルに onClipEvent (mouseUp) { Mouse.show(); } ------------------------------------------------------------------ 1)だけ、2)だけ、3)だけと、単体で動かすことはできました。 でも、これだと、目的の動作をしてくれません(当たり前?) クリックされた後 1)のonClipEvent (enterFrame)を停止、 2)を実行、 3)を実行 ということをやればいいのかなーと見当をつけていますが…。 if文?flag?を使うのかな…と思い、試行錯誤していますが 2日間成功しないでいます(号泣)。 諸先輩方、是非お知恵を貸してください。 プログラミング初心者なので、具体的なスクリプトの記述を ご教授いただけると助かります。 ずうずうしいお願いで申し訳ありませんが、よろしくお願いします。 |
野中文雄 | Åê¹ÆNo.9889 投稿日時: 2004-8-16 22:56 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: マウスカーソルをmcにし、クリックで通常のマウスカーソルへ ifステートメントで、フラグを使います。どのように「試行錯誤」されたのでしょうか? つまり、どのような考え方にもとづいて、どこにどういうスクリプトを記述されましたか?
引用: kero835さんは書きました: 「初心者」であれば余計に、具体的なスクリプトそのものより、まず「考え方」を理解されるべきだと思います。そうでないと、毎回ここで同じような質問をされるハメに陥ります。 引用: プログラミング初心者なので、具体的なスクリプトの記述を [Q]以下のスクリプトに、ステージをクリックしたらアニメーションが停止する処理を加えてください。 それがおわかりにならないときは、 [Q1]ステージをクリックしたら、MovieClipのアルファを50に設定してください。 [Q2]つぎに、MovieClipのアルファが100未満だったら、アニメーションが停止する処理を加えてください。
|
kero835 | Åê¹ÆNo.9894 投稿日時: 2004-8-17 0:32 |
新米 居住地: 投稿: 26
使用環境:
Windows2000, FlashMX2004, IneternetExplorer6.0 |
Re: マウスカーソルをmcにし、クリックで通常のマウスカーソルへ 野中さま、レスありがとうございます!!
引用: [Q]以下のスクリプトに、ステージをクリックしたら ご指摘(お察し)のとおり、まさに、この問題で行き詰っています。 onClipEvent (enterFrame)で処理しているものを何らかのタイミング (この場合は、onClipEvent (mouseUp)イベント?)で中止させるという ことができません。 過去ログやサンプルスクリプトを調べていますが、該当する スクリプトを見つけることができませんでした(理解不足??) その他の処理は記述できました。 --------------- onClipEvent (enterFrame) { _x = _parent._xmouse; } onClipEvent (mouseUp) { this._alpha = 50;//Q1 if (this._alpha<=100) { trace("アルファ100以上");//アルファが100以下だった場合の処理 } else { trace("アルファ100以外");// } } --------------- よろしくご教示願います。m(_ _.)m |
野中文雄 | Åê¹ÆNo.9900 投稿日時: 2004-8-17 6:26 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: マウスカーソルをmcにし、クリックで通常のマウスカーソルへ 探すことより、考えることに重点をきましょう。検索する場合は、同じような処理にこだわらず、「フラグ」を使ったサンプルを見て、その考え方を理解すべきです。 引用: kero835さんは書きました: [Q2]は、できていませんね。onClipEvent (mouseUp)からは、MovieClipインスタンスがマウスに追随するアニメーションは直接止められません。 引用: その他の処理は記述できました。 マウスをクリックしたら、MovieClip._alphaプロパティは必ず100未満になります。したがって、100の場合と分岐するifステートメントは、このハンドラ内には不要です。 フラグ(旗)を使うのは、その状態を知らせたい相手がいるからです。その相手が自分自身だったら、旗を使う必要などありません。離れた相手だからこそ、旗で知らせなければならないのです。
ちなみに、条件は100「以下」ではありません。100「未満」です。 |
kero835 | Åê¹ÆNo.9906 投稿日時: 2004-8-17 10:00 |
新米 居住地: 投稿: 26
使用環境:
Windows2000, FlashMX2004, IneternetExplorer6.0 |
Re: マウスカーソルをmcにし、クリックで通常のマウスカーソルへ ご指導ありがとうございます。
--------------------- onClipEvent (enterFrame) { _x = _parent._xmouse; if (this._alpha < 100) { trace("100未満"); //Q2 } else { trace("100未満以外"); } } onClipEvent (mouseUp) { this._alpha = 50; //Q1 } --------------------- 引用: [Q2]は、できていませんね。onClipEvent (mouseUp)からは、MovieClipインスタンスがマウスに追随するアニメーションは直接止められません。 そのとおりです。。onClipEvent (enterFrame)を停止する処理を設定することができないでいます。。 「考え方」は以下だろうと認識していますが、誤りがありましたらご教示ください(まだスクリプトを書いていません、取り急ぎ)。 1.flagは0を入れておく 2.もし、アルファが100未満だったら flag=1 3.それ以外は flag=0 4.flagの判定 5.flag=1のとき、アニメーションの停止 よろしくお願いいたします。 |
野中文雄 | Åê¹ÆNo.9907 投稿日時: 2004-8-17 10:44 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: マウスカーソルをmcにし、クリックで通常のマウスカーソルへ アニメーションを「停止」するというのは、アニメーションの「処理を行わない」ことです。
引用: kero835さんは書きました: このとき、MovieClip._alphaプロパティ自体が、フラグの役割を果たしています。 |
kero835 | Åê¹ÆNo.9909 投稿日時: 2004-8-17 11:10 |
新米 居住地: 投稿: 26
使用環境:
Windows2000, FlashMX2004, IneternetExplorer6.0 |
Re: マウスカーソルをmcにし、クリックで通常のマウスカーソルへ ご指導ありがとうございます!
引用: // _x = _parent._xmouse; // 条件分岐処理の中に移動 引用: [Q]以下のスクリプトに、ステージをクリックしたらアニメーションが停止する処理を加えてください。 上記をflag判定で記述してみました。 ------------ onClipEvent (load) { flag = 0; } onClipEvent (enterFrame) { if (flag == 0) { _x = _parent._xmouse; } else { } } onClipEvent (mouseUp) { flag = 1; } ------------ …動きます!!!!!!感動、、下半期最初の感動です。 ヤワラちゃんの金メダルより感動しました(個人的に)。 ご指導を元に再び宿題のスクリプトに取り組んでみます。 |
kero835 | Åê¹ÆNo.9912 投稿日時: 2004-8-17 12:10 |
新米 居住地: 投稿: 26
使用環境:
Windows2000, FlashMX2004, IneternetExplorer6.0 |
Re: マウスカーソルをmcにし、クリックで通常のマウスカーソルへ(解決) ご指導いただいたスクリプトを参考に、問題だったスクリプトを下記の通り修正ました。⇒意図どおり正しく動作しました!
-------------------------- onClipEvent (load) { flag = 0; } onClipEvent (mouseUp) { flag = 1; } onClipEvent (enterFrame) { posX = _parent._xmouse; posY = _parent._ymouse; if (flag == 0 & (posX < 380 & posY < 380)) { _x = posX; _y = posY; _alpha = 100; Mouse.hide(); } else if (flag == 1) { _alpha = 100; Mouse.show(); } else { _alpha = 0; Mouse.show(); } } -------------------------- 問題点や気になる箇所などがありましたらご指摘ください。 ご指導いただいた野中様、また見守ってくださったフォーラムの皆様、ほんとうにありがとうございました。 今後もフォーラムを利用し精進していきます。 |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |