webForumDet fria alternativet

inom ett visst område ?

Flash

5 svar · 409 visningar · startad av phred

Medlem sedan nov. 2005314 inlägg
Frågan#1

Hejsan jag har denna koden för att kunna rita lite streck.

createEmptyMovieClip("Line",1);
onMouseDown = function (){
   Line.lineStyle(2,0x000000,100);
   Line.moveTo(_xmouse, _ymouse);        

onMouseMove = function (){
   Line.lineTo(_xmouse, _ymouse);}
}
onMouseUp=function(){
      onMouseMove=null;
}

Men jag skulle vilja att det bara fungerade när man var över ett visst område i flashfilmen.

Någon som har en vettig lösning eller vad jag ska läsa på om ?

Tack på förhand

Medlem sedan dec. 200384 inlägg
#2

En enkel lösning är att se vart pekaren befinner sig på scenen. Se exempel.

createEmptyMovieClip("Line", 1);
onMouseDown = function () {
	if (this._xmouse>100) {
		Line.lineStyle(2, 0x000000, 100);
		Line.moveTo(_xmouse, _ymouse);
		onMouseMove = function () {
			if (this._xmouse>100) {
				Line.lineTo(_xmouse, _ymouse);
			}
		};
	}
};
onMouseUp = function () {
	onMouseMove = null;
};
Medlem sedan nov. 2005314 inlägg
#3

Det där fungerade ju finfint :D

Men nu stötte jag på patrull igen, jag har flyttat in createEmptyMovieClip("Line", 1);
i onMouseDown = function.
Men jag vill ju att den ska få olika depts då använder jag createEmptyMovieClip("Line", this.getNextHighestDepth()); det fungerar (tror jag), detblir iallafall en massa nya streck om man ritar flera omgångar.

Brevid ytan där jag kan rita så har jag en knapp om man klickar på den så vill jag att ett streck åt gången ska försvinna det senast ritade först då testade jag med

on Release{
removeMovieClip(_root.Line.getNextHighestDepth());
}

Det fungerade då rakt inte, någon som vill rätta mig så vore jag tacksam. Jag har inte en aning om jag är på rätt väg ens.

Medlem sedan dec. 2006608 inlägg
#4
var counter = 0;
createEmptyMovieClip("paint", getNextHighestDepth());
onMouseDown = function () {
	if (this._xmouse>100) {
		counter += 1;
		paint.createEmptyMovieClip(["Line"+counter], paint.getNextHighestDepth());
		paint["Line"+counter].lineStyle(2, 0x000000, 100);
		paint["Line"+counter].moveTo(_xmouse, _ymouse);
		trace("skapar = Line"+counter);
		onMouseMove = function () {
			if (this._xmouse>100) {
				paint["Line"+counter].lineTo(_xmouse, _ymouse);
			}
		};
		trace(counter);
	}
};
onMouseUp = function () {
	onMouseMove = null;
};
button.onRelease = function() {
	if (counter != 0) {
		removeMovieClip(paint["Line"+counter]);
		trace("tar bort = Line"+counter);
		counter -= 1;
	}
};

Det här borde fungera.

Det jag gjort är att jag lägger alla "streck" som ritas i ett mc, "paint", och namnger alla streck med hjälp av variabeln counter, dvs ["Line"+counter] blir Line1, Line2 etc, och eftersom counter innehåller det sista numret på den streck som ritats tar man helt enkelt bort den...

Obs! Den här koden behöver en knapp med instance namnet button som ligger utanför det området som det kan ritas i.

Hoppas den förklaringen duger. :)

red. la till ett par trace för att du ska kunna se hur det fungerar.

Medlem sedan nov. 2005314 inlägg
#5

Jag har pillat med precis en sådan lösning men inte riktigt fått det att fungera, men nu fungerar det precis som jag vill :)

Tackar tackar.

Medlem sedan dec. 2006608 inlägg
#6

Nemas problemas. :birp

257 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
122 ms — deklarationer (db)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)
119 ms — ändringar (db)