PDA

Volledige versie bekijken : Attachen loopt niet goed


TheSilentWitness
%Europe/Berlin %678 %2005, 17:16
Yuuw,


Ik zit momenteel met een vervelend probleempje...


Ik heb de volgende code:

var i:Number = 0;
_root.onEnterFrame = maakDruppel;
function maakDruppel() {
var drupje = _root.attachMovie("drup", "drup"+i++, _root.getNextHighestDepth());
drupje._height = drupje._width =Math.random()*20+4;
drupje._x = Math.random()*550;
drupje._y = 0
this.onEnterFrame = function() {
this._y += 5;

}
}



Maar het drupje wil maar 1 maal attachen, en dat is zeker niet de bedoeling:)


Weet iemand de oplossing? (ik veronderstel van wel:D)

Larsvu
%Europe/Berlin %687 %2005, 17:29
je maakt een nieuwe clip die drup heet, terwijl je de x en de y zet met de naam drupJE.

TheSilentWitness
%Europe/Berlin %690 %2005, 17:33
Neen, daar ligt het geloof ik niet aan hoor:)

Roenes
%Europe/Berlin %692 %2005, 17:37
je maakt een nieuwe clip die drup heet, terwijl je de x en de y zet met de naam drupJE.Neej hoor. Hij maakt een mc genaamd drup met een nummer en slaat deze op in drupje. Drupje is dus een verwijzing.

Het ligt aan je onEnterFrame in de functie. Deze hang je aan this (oftewel de _root) en overschrijft dus de onEnterFrame die iedere keer een nieuwe druppel maakt. Verander je code naar dit:

var i:Number = 0;
_root.onEnterFrame = maakDruppel;
function maakDruppel() {
var drupje = _root.attachMovie("drup", "drup"+i++, _root.getNextHighestDepth());
drupje._height = drupje._width =Math.random()*20+4;
drupje._x = Math.random()*550;
drupje._y = 0
drupje.onEnterFrame = function() {
this._y += 5;

}
}

TheSilentWitness
%Europe/Berlin %716 %2005, 18:12
Roenes, hartelijk bedankt;)



Maar nu zit ik met een andere vraag, niet echt belangrijk enzo, maar toch:)...


Ik heb dus dat drupje dat ik laat vallen, en als het een bepaalde snelheid heeft bereikt, moet de snelheid constant blijven...



De code waar ik de snelheid mee laat opdrijven:

var valY:Number = 3
//hier zit nog code tussen
//en dan op den duur krijg je dit:
this._y += valY;
valY++;

if (valY >= 15){
valY--
}


Nu los ik het dus op door van de valY telkens eentje af te trekken. Maar kan dit anders? Op de manier waarop ik het doe lijkt me onnodig CPU verlies...




Alvast bedankt:)

Pimm
%Europe/Berlin %803 %2005, 20:17
Ja, gebruik setInterval. Google (google.com/search?q=flash%20setinterval).

theFlashWizard
%Europe/Berlin %651 %2005, 16:38
intervals:
http://www.kirupa.com/developer/actionscript/setinterval.htm
http://www.actionscripts.org/tutorials/intermediate/setInterval/index.shtml

Larsvu
%Europe/Berlin %900 %2005, 22:37
Ik was duidelijk nog niet wakker, en dat terwijl het bijna avond was :p