PDA

Volledige versie bekijken : Optelprobleem Sudoku


Hobbes2002
%Europe/Berlin %422 %2007, 10:09
Hey,

Ik zit hier 3e Kerstdag met een actionscript-probleem waar ik niet uitkom.

Het volgende is het geval:
we hebben een sudoku gemaakt waar je MC's sleept in een grid, met behulp van een
if droptarget wordt gekeken op de desbetreffende MC op de juiste plek staat, niet zo dan springt hij terug, wel, blijft hij staan. Deze sleepbare MC bestaat uit text en een button met de actions.

Nu is het idee om ter controle van de ingevulde velden een teller bij te houden. Er zijn 36 vakjes waarvan er 6 gevuld zijn. Dus als de teller op 30 staat zou hij iets van Gefeliciteerd moeten geven.

Nu het probleem: er is een variabele teller aangemaakt, deze wordt in de root op 0 gezet

teller = 0;
trace (teller);


Op iedere sleepbare MC staat de code om te controleren en de teller op te verhogen met 1

on (release) {
stopDrag();
if (_droptarget eq "/target08") {
setProperty("", _x, 266);
setProperty("", _y, 99);
teller ++;
trace (teller);
}
}


Het vreemde is dat alle sleepbare MC's als waarde voor de teller 1 geven. er wordt alleen van 0 naar 1 verhoogd, daarna niet meer.

Iemand een idee wat ik fout doe?

Ben benieuwd naar jullie reacties. Dank je wel!

Marc

John_D
%Europe/Berlin %436 %2007, 10:28
Beste Marc,

Het probleem kan vrij handig worden opgelost. Die button handling met de on (release) wordt aangeroepen in de Movieclip. Je zit dus 1 niveau lager. Als je dan de gewoon
teller++; doet, gaat hij een teller in de huidige MC aanmaken/proberen te vinden. Je moet deze uiteraard van de root verhogen. Daarom moet je in je slepende movieclip de teller naar de root verwijzen of de in dit geval kan ook de parent:
_root.teller++;
_parent.teller++;

Hobbes2002
%Europe/Berlin %454 %2007, 10:54
Hey John_D,

Dank je voor je reactie!
als ik _root.teller++ gebruik geeft hij "undefined"
Dat had ik ook al geprobeerd, ook het omzetten naar een var Number werkt niet....

Nog een ander idee?

Groeten, Marc

John_D
%Europe/Berlin %467 %2007, 11:12
Hey,
Je doet dan toch ook trace(_root.teller) ipv trace(teller)
Er was trouwens wel iets raars mee hoor. Ik heb je bestanden even geopend. Heb gezien dat het actionscript 1 was en flash player 5 bij de publish settings. Ik heb het even naar 8 en as 2 gezet en dat terug naar 5 en as 1. En dan werkte het wel. Strange.

John_D
%Europe/Berlin %472 %2007, 11:20
Ow ja, doe ook _root.teller++; ipv van _root.teller ++; -> dus zonder spatie doen ipv met spatie.

Hobbes2002
%Europe/Berlin %540 %2007, 12:58
Ow ja, doe ook _root.teller++; ipv van _root.teller ++; -> dus zonder spatie doen ipv met spatie.

Hey John_D,

dat was het probleem.....erg stom! :X Al zeg ik het zelf, het is de kerstkalkoen die deze brainwave in de weg zat :D

Dank je wel!

Het werkt allemaal naar behoren, heb door al het zoekwerk weer wat geleerd en dat is weer prettig (zelfs op 3e Kerstdag) 8D

Groeten!
Marc

Dauntless
%Europe/Berlin %568 %2007, 13:38
Ow ja, doe ook _root.teller++; ipv van _root.teller ++; -> dus zonder spatie doen ipv met spatie.
Spatie maakt niets uit:
var i:Number = 0;
trace(i ++);
trace(i++);
trace(i);
Geeft keurig: "0, 1, 2".

John_D
%Europe/Berlin %864 %2007, 20:44
och ja, had al het idee, maar tis toch mooier zonder spatie :P
Misschien maakt het in oudere versies van de player wel uit, who knows