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

パスワード:


パスワード紛失

新規登録
メインメニュー
メイン
   ActionScript 3.0 特設会議室
     線の描画について
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
moritan
Åê¹ÆNo.40483
投稿日時: 2008-10-10 16:45
新米
居住地:
投稿: 5
使用環境:
CS3
XpSP3
FlashPlayer9.0.124
線の描画について
お世話になります。
クリックをした時に円を描き
その後、続けて線を描きたいのですが

両方の動作を繰り返していると
描画が崩れてしまうのですが
どうすればよいでしょうか
よろしくお願いいたします。

//落書きを表示する用のスプライト(Sprite)を作成
var canvas:Sprite = new Sprite();

//作成したスプライトを、インスタンスboardに配置
board.addChild(canvas);
canvas.graphics.lineStyle(10,0xFFFFFF);

//マウスを押したら、描画モードをオンにするために、mouseMoveイベントを関連付ける
board.addEventListener(MouseEvent.MOUSE_DOWN,drawOn);
board.addEventListener(MouseEvent.CLICK,dott);

function drawOn(event:MouseEvent) {
board.addEventListener(MouseEvent.MOUSE_MOVE,drawLine);
//現在のマウスの位置に、moveToメソッドを使って描画のスタート地点を移動
canvas.graphics.moveTo(event.localX,event.localY);
}

function dott(event:MouseEvent){
canvas.graphics.beginFill(0xFFFFFF);
canvas.graphics.drawCircle(mouseX,mouseY,10);
canvas.graphics.endFill();
}

//マウスを離したら、描画モードをオフにする
board.addEventListener(MouseEvent.MOUSE_UP,drawOff);
board.addEventListener(MouseEvent.ROLL_OUT,drawOff);
function drawOff(event:MouseEvent) {
board.removeEventListener(MouseEvent.MOUSE_MOVE,drawLine);
}

//マウスの移動に合わせて、線を引く関数
function drawLine(event:MouseEvent) {
canvas.graphics.lineTo(event.localX,event.localY);
}


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

あにぃ
Åê¹ÆNo.40485
投稿日時: 2008-10-10 17:13
職人
居住地: 北海道
投稿: 250
使用環境:
Flash8
FlashCS3
WinXP
FlashLite1.1 / 2.0
Re: 線の描画について
MouseEvent.CLICKを使わなければ問題なさそうな気がします。


//クリック時のマウス座標を格納。
var sx:Number = 0;
var sy:Number = 0;
//落書きを表示する用のスプライト(Sprite)を作成
var canvas:Sprite = new Sprite();

//作成したスプライトを、インスタンスboardに配置
board.addChild(canvas);
canvas.graphics.lineStyle(10,0xFFFFFF);

//マウスを押したら、描画モードをオンにするために、mouseMoveイベントを関連付ける
board.addEventListener(MouseEvent.MOUSE_DOWN,drawOn);

function drawOn(event:MouseEvent) {
	board.addEventListener(MouseEvent.MOUSE_MOVE,drawLine);
	//現在のマウスの位置に、moveToメソッドを使って描画のスタート地点を移動
	canvas.graphics.moveTo(event.localX,event.localY);
	sx = mouseX;
	sy =mouseY;
}

function dott() {
	canvas.graphics.beginFill(0xFFFFFF);
	canvas.graphics.drawCircle(mouseX,mouseY,10);
	canvas.graphics.endFill();
}

//マウスを離したら、描画モードをオフにする
board.addEventListener(MouseEvent.MOUSE_UP,drawOff);
board.addEventListener(MouseEvent.ROLL_OUT,drawOff);
function drawOff(event:MouseEvent) {
	board.removeEventListener(MouseEvent.MOUSE_MOVE,drawLine);
	if (sx == mouseX && sy == mouseY) {
		dott();
	}
}

//マウスの移動に合わせて、線を引く関数
function drawLine(event:MouseEvent) {
	canvas.graphics.lineTo(event.localX,event.localY);
	canvas.graphics.endFill();
}


とかではどうですか?


----------------
質問する際には、ご自分でできる限り調べてから投稿して下さい

P・S 職人おめでとう。(08/10/09)

moritan
Åê¹ÆNo.40492
投稿日時: 2008-10-11 5:31
新米
居住地:
投稿: 5
使用環境:
CS3
XpSP3
FlashPlayer9.0.124
Re: 線の描画について
あにぃさん、迅速な回答有難う御座いました。

固定概念に囚われていましたが
MouseEventを使わなくてもいけるんですね
勉強になりました!


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

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

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