• beyond tellerrand – play. Register Now!
Zurück   Flashforum > Flash > ActionScript > ActionScript 2

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-12-2007, 13:04   #1 (permalink)
Rock'n'Bass
 
Benutzerbild von <sVkVmVit>
 
Registriert seit: Feb 2006
Ort: Hamburg
Beiträge: 202
Seltsames Tile-Verhalten ...

Hi Leutz,

hab da ein Problem mit einem Script für ein kleines tile-basiertes Programm, das ich schreiben muss. Folgendes sollte dabei geschehen, wenn alles richtig läuft (was es anscheinend noch nicht tut..):

1. Ein Feld von 10x10 Tiles (rote Quadrate) soll mittels attachMovie erstellt und ihr alpha-Wert auf 0 gesetzt werden

Test: funktionert einwandfrei

2. Wenn der Mauscursor mit einem der Tiles in Berührung kommt, soll dieses Tile auf alpha=100 und alle umliegenden Tiles (logischerweise 8) auf alpha=20 gestellt werden.

Test: Auf den ersten Blick scheints zu funzen, jedoch geschehen bei flotteren Bewegungen immer wieder seltsame Phänomene. Um es klar auszudrücken: Einige Tiles, die garnichts mit den Tiles um den Cursor herum zu tun haben, werden auf alpha=20 gesetzt. Das kann doch garnicht sein oder??


Bitte helft mir! Wär euch sehr dankbar.


PS: Um euch anzusehen, wie das aussieht, kopiert einfach folgenden Code ins erste Bild der Hauptzeitleiste und erstellt ein rotes Quadrat namens "tile" (20x20 pixel) mit gleichnamiger actionscriptverknüpfung.

Code:
stop();

tilebreite = 20;
tilehoehe = 20;
xtiles = 10;
ytiles = 10;

map = [1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1,
	   1,1,1,1,1,1,1,1,1,1];

k = 0;
l = 0;
for (i=0;i<=(map.length-1);i++){
	attachMovie("tile","tile"+i,i);
	_root["tile"+i]._alpha = 0;
	_root["tile"+i]._x = 40 + k * tilebreite;
	_root["tile"+i]._y = 40 + l * tilehoehe;
	k++;
	if (k>=xtiles){
		trace("k ist groesser als xtiles");
		k = 0;
		l++;
		}
	}


_root.onEnterFrame = function(){
	
	k = 0;
	l = 0;
	for (i=0;i<=(map.length-1);i++){
		
		if (_root["tile"+i].hitTest(_root._xmouse, _root._ymouse)){
			//trace("tile"+i+" berührt!");
			if (_root["tile"+i]._currentframe == 1){
				_root["tile"+i]._alpha = 100;
				//--------------------------------------------------
					for (j=0;j<=8;j++){
						if (j!=4 && _root["tile"+((i-xtiles-1)+k+l*xtiles)]._alpha == 0){
							_root["tile"+((i-xtiles-1)+k+l*xtiles)]._alpha = 20;
							trace("tile"+((i-xtiles-1)+k+l*xtiles)+" wurde auf bild 2 gesetzt.");
							}
						k++;
						if (j==2 || j==5){
							k = 0;
							l++;
							}
						} // Ende for
				//--------------------------------------------------
				} // Ende if
			} // Ende if
		
		} // Ende for
	
	} // Ende onEnterFrame

Wie gesagt, wäre euch echt super dankbar. Mach grad praktikum und wenn das richtig läuft wär das megacool.
__________________
==>remix.nin.com<==
//
Life Is Too Short For Boring Music!
Fantasie ist die einzige Waffe gegen die Wirklichkeit.

Geändert von <sVkVmVit> (05-12-2007 um 13:09 Uhr)
<sVkVmVit> ist offline   Mit Zitat antworten
Alt 05-12-2007, 14:18   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Habe es jetzt nicht ausprobiert, aber …

Du nummerierst die Tiles ja reihenweise linear durch.
Würde das nicht bedeuten, daß wenn Du z.B. die Maus
über Tile10 hast (2. Reihe ganz links), das numerische
Teile davor – Tile9 – sich aber in der ersten Reihe ganz
rechts befinden würde?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 05-12-2007, 18:14   #3 (permalink)
Rock'n'Bass
 
Benutzerbild von <sVkVmVit>
 
Registriert seit: Feb 2006
Ort: Hamburg
Beiträge: 202
Ok, da hast du natürlich Recht. Das Problem, was du hier beschreibst hab ich aber mittlerweile hinbekommen.
Nur ändern sich bei mir eben auch Tiles an falschen Orten, wenn ich mich mit dem Cursor irgendwo in der Mitte des Feldes (schnell) bewege, was ja theoretisch nciht sein dürfte..
Das ist das, was ich bis jetzt noch nicht wirklich verstehe.

Aber erstmal danke für deine Antwort.
__________________
==>remix.nin.com<==
//
Life Is Too Short For Boring Music!
Fantasie ist die einzige Waffe gegen die Wirklichkeit.
<sVkVmVit> ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 21:32 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele