PDA

Volledige versie bekijken : Loop'em...


bracke
%Europe/Berlin %573 %2005, 14:45
Ik heb ergens in mijn flashmovie volgend sukje AS

kader1.onRelease = function() {
_root.commentaar.commentaarInMC.text = commentaar[1];
trace("ok");
trace(commentaar[1]);
};
kader2.onRelease = function() {
_root.commentaar.commentaarInMC.text = commentaar[2];
trace("ok");
trace(commentaar[2]);
};
kader3.onRelease = function() {
_root.commentaar.commentaarInMC.text = commentaar[3];
trace("ok");
trace(commentaar[3]);
};as]

Deze geeft in de output de juiste traces weer. Nu zijn kader1 tem kader3 (in werkelijkheid 20) dynamisch aangemaakt, en wil ik dit vorige ook dynamisch gebruiken. Ik heb hetvolgende geprobeerd.


[as] eval("kader"+i).onRelease = function() {
for (i=1; i<=3; i++) {
_root.commentaar.commentaarInMC.text = commentaar[i];
trace("ok");
trace(commentaar[i]);
}
};

Na een hoop geprobeer en getrace, blijkt mijn fout te zitten in de 1e regel.

Kan iemand me helpen?

TheDutch
%Europe/Berlin %579 %2005, 14:54
this["kader"+i].onRelease = function() {
for (var i =1;i<=3;i++) {
_root.commentaar.commentaarInMC.text = commentaar[i];
trace("ok");
trace(commentaar[i]);
}
};


Ik heb this[] gebruikt ipv. eval() omdat dit in de meeste gevallen beter is om dynamische verwijzingen te maken naar objecten. Verder heb ik voor je inner loop de index waarde "i" aan laten maken binnen de functie ipv. erbuiten. Dit om te voorkomen dat "i" in de war kan raken.

Erwin :)

bracke
%Europe/Berlin %587 %2005, 15:05
Hoe weet Uw stukje AS wat i juist is in de eerste regel?

Ik heb uw stukje alvast geprobeerd, maar helaas...

Groetjes!

TheDutch
%Europe/Berlin %592 %2005, 15:12
Je moet er wel een for loop omheen bouwen :)


for(var i=1;i<=20;i++){
this["kader"+i].onRelease = function() {
for (var i=1;i<=3;i++) {
_root.commentaar.commentaarInMC.text = commentaar[i];
trace("ok");
trace(commentaar[i]);
}
};
}

bracke
%Europe/Berlin %597 %2005, 15:20
Werkt niet hoor.

En die logica begrijp ik ook niet echt :#

Alvast beadankt voor de moeite!!

TheDutch
%Europe/Berlin %599 %2005, 15:23
Voeg je FLA maar eventjes toe ;).

bracke
%Europe/Berlin %606 %2005, 15:32
Bedankt!

FLA (http://users.pandora.be/BennyBracke/test/guestbook.fla)

Ik heb het betreffende stukje AS in de vorm zoals mijn 1e post gezet. Je zal zien dat de 1e drie bovenste knoppen werken zoals het moet. Nu nog in een loop krijgen..

Greetz!!!

theFlashWizard
%Europe/Berlin %630 %2005, 16:07
en die logica begrijp ik ook nie echt? verdiep je er dan in:|
http://www.actionscripts.org/tutorials/intermediate/loops/index.shtml

TheDutch
%Europe/Berlin %630 %2005, 16:07
VERVANG DIT:

for (i=1; i<=myData.aantalPosts; i++) {
kaderMC = attachMovie("kader", "kader"+i, depth++);
kaderMC._alpha = 10;
kaderMC._x = 10;
kaderMC._y = i*spacing;
kaderMC.onRollOver = function() {
this._alpha = 50;
};
kaderMC.onRollOut = function() {
this._alpha = 10;
};
kaderMC.onPress = function() {
this._alpha = 80;
};
kaderMC.onRelease = function() {
this._alpha = 10;
};
}
//commentaren weergeven
kader1.onRelease = function() {
_root.commentaar.commentaarInMC.text = commentaar[1];
trace("ok");
trace(commentaar[1]);
};
kader2.onRelease = function() {
_root.commentaar.commentaarInMC.text = commentaar[2];
trace("ok");
trace(commentaar[2]);
};
kader3.onRelease = function() {
_root.commentaar.commentaarInMC.text = commentaar[3];
trace("ok");
trace(commentaar[3]);
};

DOOR DIT:

for (i=1; i<=myData.aantalPosts; i++) {
kaderMC = attachMovie("kader", "kader"+i, depth++);
kaderMC._alpha = 10;
kaderMC._x = 10;
kaderMC._y = i*spacing;
kaderMC.commentaarNr = i;
kaderMC.onRollOver = function() {
this._alpha = 50;
};
kaderMC.onRollOut = function() {
this._alpha = 10;
};
kaderMC.onPress = function() {
this._alpha = 80;
};
kaderMC.onRelease = function() {
this._alpha = 10;
_root.commentaar.commentaarInMC.text = commentaar[this.commentaarNr];
trace("ok");
trace(commentaar[this.commentaarNr]);
};
}

Zie je een beetje wat ik veranderd heb en begrijp je het? :)

bracke
%Europe/Berlin %725 %2005, 18:25
Allereerst superbedankt het lukt!

Ik moet eerlijk zijn dat ik, met uw oplossing te zien, nu plotseling herinner dat k ooit een gelijkaardig probleem heb gehad.

Begrijpen doe ik nog niet, maar dat zal niet lang duren.

Bedankt!!!!!!!!