- ベストアンサー
始点からクリックした位置まで直線を描く方法
- Flash8を使用して、始点からクリックした位置まで直線を描く方法について教えてください。
- また、描画速度を調整する方法も教えていただきたいです。
- お願いします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
うまく行かないとは,どううまく行かないのかがわかりません。 stage_mc の中が 透明な塗りで塗りつぶされていて, stage_mc の基準点(+印)がステージの左上のコーナー(0,0)にあれば, とりあえずはうまく動作するはずですが。 上のように stage_mc を作成して,うまくいっているという条件で, > できればゆっくりと描きたいと思っているのですが に関するスクリプト例です。 _root.stage_mc.onPress = function() { _root.stage_mc.enabled = false; // 線が伸びている間の重複クリック防止のため // stage_mc のボタン機能を無効にする x1 = _root._xmouse; y1 = _root._ymouse; _root.stage_mc.lineStyle(5, 0x000000, 100); //太さ5、黒、アルファ値100に設定 _root.stage_mc.moveTo(90, 380); //始点を90,380に設定 spd = 1/10; // スピードを 1/10 に設定(好みによって変えます) cnt = 0; // カウント用変数 cnt の初期化 this.onEnterFrame = function() { // 1フレーム進む時間毎に随時実行 cnt += spd; // カウント を spd の値分加算 if (cnt<=1) { // cnt の値が 1 以下 のとき _root.stage_mc.lineTo((x1-90)*cnt+90, (y1-380)*cnt+380); //始点からx1,y1へ cnt だけ直線を引く } else { _root.stage_mc.enabled = true; // stage_mc のボタン機能を有効にする delete this.onEnterFrame; // この onEnterFrame を削除 } }; }; 場合によるので,これも良いかどうかわかりませんが, とりあえずはゆっくり線が伸びるのではないでしょうか。
お礼
>うまく行かないとは,どううまく行かないのかがわかりません。 >stage_mc の中が 透明な塗りで塗りつぶされていて,stage_mc の基準点(+印)がステージの左上のコーナー(0,0)にあれば,とりあえずはうまく動作するはずですが。 説明不足で大変申し訳ありません。 ご指摘のとおり、この2点のことをしていませんでした。透明な塗りでないとダメなのですね。 教えていただいたスクリプトをコピペして、完璧に動作しています。 説明も添えていただき、本当に助かりました。 ありがとうございました<(_ _)> BlurFiltanさんのように自由自在にScriptを扱えるようになりたいです。