メイン コーダーズルーム【スクリプト系】 onClipEvent (enterFrame) の(load)時の設定を停止する。 | 投稿するにはまず登録を |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
takayasu | Åê¹ÆNo.8501 投稿日時: 2004-6-22 12:40 |
新米 居住地: 投稿: 16
使用環境:
MacOSX10.3.5. FlashMX2004 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 森さん、野中さんレスありがとうございます。
まだまだ勉強中のため野中さんのスクリプトの中で解らない所があります。 しかし、自分である程度は理解しないと失礼な所もあると思いますので この件についてもう少し理解してからまたご質問させていただきたいと思っております。 なるべく早めにまた質問させていただきたいと思っておりますのでどうぞよろしくお願い致します。 |
野中文雄 | Åê¹ÆNo.8484 投稿日時: 2004-6-21 17:20 |
ちょんまげら 居住地: 東京 投稿: 4531
使用環境:
CS5.5 .6.8 Vista Home Premium (SP1) |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 0から100の範囲を超えたら停止する処理は、すでにご紹介しています。
MovieClip._alphaプロパティの値が1/256より小さくなると、加算しても増加しない理由は「落ち着かない数値など」のスレッドをご覧ください。 引用: takayasuさんは書きました: MovieClip._alphaの最小値を固定する処理を加えると、こんな感じでしょう。
引用: サンプルを制作してみました。 |
森 巧尚 | Åê¹ÆNo.8483 投稿日時: 2004-6-21 17:18 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 引用:
takayasuさんは、ご自分でImageMoveという変数で01や02の状態を切り替えておられますよね。それはなぜですか? 01のときが表示されるとき、02のときが消えていくときですよね。
例えば、02のときはalphaの値を引き算していますよね。alphaMAXには100が入っているので、100を5で割ると20。毎回alphaの値が20ずつ減っていくわけですから、それを延々と繰り返せばマイナスの値になっていくのは当然です。 引用:
例えば、02の状態のとき、今は無条件にalphaの値を減らしているので、延々と減り続けていくわけですが、ここでifで条件分岐をすればいいのです。alphaの値が0より小さかったら、0ジャストにして止めればいいわけです。ImageMoveの値が01の時は増加、02のときは減少していくわけですから、それ以外の値にすればどちらの処理も行われません。その値は、それはtakayasuさんが決めればいいことですね。
|
takayasu | Åê¹ÆNo.8482 投稿日時: 2004-6-21 16:33 |
新米 居住地: 投稿: 16
使用環境:
MacOSX10.3.5. FlashMX2004 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 alphaをtraceして気が付いたのですが、
alphaが100ジャストにならないのと、だんだん薄くなる時に0を過ぎても 止まらない状態が続きます。 なぜこういった状態になるのでしょうか。 alphaを100と0ジャストで止められる方法とかはありますでしょうか? サンプルを制作してみました。 http://www.tigermobil.com/test.zip |
takayasu | Åê¹ÆNo.8399 投稿日時: 2004-6-17 3:22 |
新米 居住地: 投稿: 16
使用環境:
MacOSX10.3.5. FlashMX2004 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 森 巧尚さん。
レスありがとうございます。 引用:
なっておりました。。。 森さんの著書も購入して勉強させていただきますです。。。 |
森 巧尚 | Åê¹ÆNo.8397 投稿日時: 2004-6-17 1:49 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 引用:
「Bt_01Mをクリックしたとき」は、「いつ」のスピードと比べて倍速になっていますか? 以前の間違いならHomeTextとHomeText02の変数が違うので「倍速になる」のは当然なのですが、同じImageMoveという1つの変数を使っているのであれば、 load直後は、ImageMoveが03になっていて
だけが実行されますが、Bt_01MをクリックしたときにImageMoveが01になるので、
だけしか実行されなくなるので、同じ処理をしているので同じスピードで移動するはずですよ。
|
takayasu | Åê¹ÆNo.8396 投稿日時: 2004-6-17 1:03 |
新米 居住地: 投稿: 16
使用環境:
MacOSX10.3.5. FlashMX2004 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 森 巧尚さん
まだまだ私の勉強不足や説明不足や記述ミスがあったりする中で スクリプト解読及び再スクリプト考案していただきありがとうございます。 引用:
スミマセンです。。。 引用:
Bt_01Mを"Click"時にImage_1Mの動きがやはり倍速になってしまいます。 引用:
これもありましたが森さんのご提案により解決です。ありがとうございました。 以下訂正です。 スミマセンです。。。 Bt_1M.onRelease = function() { Image_1M._x = _root.StageX + Image_2M._width; ...は Bt_1M.onRelease = function() { Image_1M._x = _root.StageX + Image_1M._width; ...です。 引用:
の間違いです。。。 |
森 巧尚 | Åê¹ÆNo.8395 投稿日時: 2004-6-17 0:25 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 引用:
これが一番の原因ですね。見えている問題点がぜんぜん違っていた・・・ まずこれで一つは原因が解決できたのですが、これであとは何が問題なのでしょうか??? スクリプトを記述してやってみたら、説明されている通りの動きをしますよ???? 少し気になったのは 引用: という事をボタンを押す事によって繰り返すといった感じです。 というところですが、この「繰り返したとき!」に「見え方が急に見えたり、移動しているように見えなかったりすることがある」などということではないでしょうか??? もしそれだとすると「ボタンを押したとき」にImage_1MやImage_2Mの「初期値」が初回(load直後)のものとは違うために状況が変わっているということではありませんか? だとするとボタンのスクリプトをこうすればいいのでは?
それから、 「//Bt_1MのMovieClipに記述」は「//Image_1MのMovieClipに記述」 「//Bt_2MのMovieClipに記述」は「//Image_2MのMovieClipに記述」 の間違いではないですか?
|
takayasu | Åê¹ÆNo.8394 投稿日時: 2004-6-17 0:02 |
新米 居住地: 投稿: 16
使用環境:
MacOSX10.3.5. FlashMX2004 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 初めまして、takayasuと申します。
野中さんのwebや本も2冊購入し勉強させていただいております。 まだまだ私の勉強不足や説明不足があったりする中で スクリプト解読及び再スクリプト考案していただきありがとうございます。 まず、やろうとしている動きですが --- ・ボタンが2つあります。(Bt_1M), (Bt_2M),とします。 ((MovieCilpにシンボル化しています)) <読み込まれると同時にウインドウ内に表示されます> ・画像が2つあります。(Image_1M), (Image_2M),とします。 ((MovieCilpにシンボル化して基準点は左上に設定)) -- -- <ボタン(Bt_1M)は画像の(Image_1M),に"項目1"として互いに密接に関係あるものです。> <ボタン(Bt_2M)は画像の(Image_2M),に"項目2"として互いに密接に関係あるものです。> -- --- ///// 読み込まれたら画像のひとつ(Image_1M)は 「Stageの右端からStageの左端から399まで進み、止まります。と同時にアルファも0%から100%になります。」 この時、もう一つの画像(Image_2M)のthis._xはウインドウサイズを変えても見えないように this._x = -this._width; としています。 ボタン(Bt_2M)を"Click"すると 画像(Image_1M)は _alphaが、だんだんと0%になります。 画像(Image_2M)は 「Stageの右端に瞬時に飛び、そこからStageの左端から399まで進み、止まります。と同時にアルファも0%から100%になります。」 そこからボタン(BT_1M)を"Click"すると 画像(Image_2M)は _alphaが、だんだんと0%になります。 画像(Image_1M)は 「Stageの右端に瞬時に飛び、そこからStageの左端から399まで進み、止まります。と同時にアルファも0%から100%になります。」 ///// という事をボタンを押す事によって繰り返すといった感じです。 スクリプトはとりあえず下記のように記述しました。 //別レイヤーに記述 Bt_1M.onRelease = function() { Image_1M._x = _root.StageX + Image_2M._width; Image_1M.ImageMove = 01; Image_2M.ImageMove = 02; }; Bt_2M.onRelease = function() { Image_2M._x = _root.StageX + Image_2M._width; Image_2M.ImageMove = 01; Image_1M.ImageMove = 02; }; //Bt_1MのMovieClipに記述 onClipEvent (load) { this._x = _root.StageX-(_root.StageMargin)/5; this._alpha = 0; aMax = 100; ImageMove = 03; } onClipEvent (enterFrame) { if(ImageMove == 03){ this._x += (399-this._x)/5; this._alpha += (aMAX - this._alpha)/10; } if (ImageMove == 01) { this._x += (399-this._x)/5; this._alpha += (aMAX - this._alpha)/10; } if (ImageMove == 02) { this._alpha -= (aMAX)/5; } } //Bt_2MのMovieClipに記述 onClipEvent (load) { this._x = -this._width; this._alpha = 0; aMax = 100; } onClipEvent (enterFrame) { if (ImageMove == 01) { this._x += (399-this._x)/5; this._alpha += (aMAX - this._alpha)/10; } if (ImageMove == 02) { this._alpha -= (aMAX)/5; } } また質問の際に記入した onClipEvent (enterFrame) { if(HomeText == 03){ ...は onClipEvent (enterFrame) { if(HomeText02 == 03){ の記入ミスでした。。。 |
森 巧尚 | Åê¹ÆNo.8393 投稿日時: 2004-6-16 23:44 |
モデレータ 居住地: 宝塚 投稿: 650
使用環境:
.5/CS4/Safari3 XP+2000//IE6 |
Re: onClipEvent (enterFrame) の(load)時の設定を停止する。 私が前に言った
引用: onClipEvent (load)で最初に、HomeText = nLoadと代入していて(ただし、このnLoadには値が入っていないので<空の文字列>が代入されることになります。HomeText = nLoadって何をしているのでしょう?)その後、HomeText02の値が 01の場合は、onClipEvent (enterFrame)で、毎回、if (HomeText == nLoad)とif (HomeText02 == 01)の両方がtrueになるわけですから、両方実行されて、倍のスピードになります。 はご理解戴けてましたでしょうか?野中さんも同じように指摘されています。 引用:
だから、同じ原因ですよ。今の状況を示すHomeTextとHomeText02をどうして2つ用意する必要があるのですか?今の状況が2つになってしまいますよ。 「今、01ですよ」「今は02ですよ」と言っておきながら、同時に「今は03でもありますよ」と言っているわけです。 だから、「if(HomeText == 03){」を実行したあとに、「if(HomeText02 == 01){」の内容も実行されて、内容が同じですから、2回実行されることになって、倍のスピードになっているわけです。 つまり、1つの変数で状況を表すようにしてはどうですか? HomeTextを使うのをやめて、HomeText02だけ使うようにしたらいいように思いますよ。 考え方(仕様と設計)の詳細をもう少し説明していただけないと具体的な解答は難しいですよ。 引用: やろうとしていることは、MovieClipが読み込まれた時に というだけの説明だけでは足りないのですよ。この説明でおっしゃってることはすでに今のスクリプトで実現できていますから、できてますよ、としか言いようないですら。
|
(1) 2 » |
スレッド表示 | 古いものから | 前のトピック | 次のトピック | トップ |
投稿するにはまず登録を | |