Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

marcos.cardoso

Desenhando linhas

Recommended Posts

E ai moçada, eu de novo,

gostaria de saber o que está errado nesse código. Ele deveria possibilitar desenhar linhas clicando e arrastando o mouse pelo palco.

A primeira linha que faço, sempre da certo, mas na segunda várias linhas são desenhadas no palco, não uma linha só

Alguem sabe o por que disso?

 

A seguir o código:

 

this.onMouseDown = clica;

var clicks:Number = 0;
var m:Number = 1;
var ver:Boolean = false;
var posx:Number;
var posy:Number;
var fimx:Number;
var fimy:Number;

function drawLine(a:Number, b:Number, c:Number, d:Number) {
	this.createEmptyMovieClip("line_mc", this.getNextHighestDepth());
	with(line_mc){
		lineStyle(5, 0x000000, 100, true, "normal", "square", "miter", 1);
		moveTo(a, B);
		lineTo(c+a, d+B);
	}
}

// eventos que ocorrem ao pressionar o mouse
function clica() {
	if (this.shape.onMouseMove) delete this.shape.onMouseMove;
	posx = _xmouse;
	posy = _ymouse;
	this.shape = createEmptyMovieClip("line_mc", this.getNextHighestDepth());
	this.shape.onMouseMove = function() {
		fimx = _xmouse - posx;
		fimy = _ymouse - posy;
		this.clear();
		drawLine(posx, posy, fimx, fimy);
		updateAfterEvent();
	}
}
this.onMouseUp = function() {
	delete this.shape.onMouseMove;
}

Desde já agradeço a ajuda

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, consegui resolver o anterior. Acontece que estava criando outro MovieClip e não estava usando corretamente

então deixei de criá-lo e passei a referenciar o movieclip criado na função clica

Assim:

function drawLine(a, b, c, d) {
	with(shape){
		lineStyle(5, 0x000000, 100, true, "normal", "square", "miter", 1);
		moveTo(a, B);
		lineTo(c+a, d+B);
	}
}

// eventos que ocorrem ao pressionar o mouse
function clica() {
	if (this.shape.onMouseMove) delete this.shape.onMouseMove;
	posx = _xmouse;
	posy = _ymouse;
	this.shape = createEmptyMovieClip("line_mc", this.getNextHighestDepth());
	this.shape.onMouseMove = function() {
		fimx = _xmouse - posx;
		fimy = _ymouse - posy;
		this.clear();
		drawLine(posx, posy, fimx, fimy, glstyle, gfstyle);
		updateAfterEvent();
	}
}

Agora estou com outro problema:

 

Em minha aplicação posso querer limpar essas linhas da tela. Como posso fazer isso.?

Como posso apagar todas as linhas que criei?

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.