[Flash] onPress functie aan ingeladen plaatje hangen

Pagina: 1
Acties:

  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
ik heb een array met een aantal namen en een array met paden naar plaatjes. Ik wil nu alle plaatjes inladen en aan elk plaatje een desbetreffende link geven.

dus het ingeladen plaatje dat zich hier bevind:
namesArrayPath[1]
moet linken naar:
namesArray[1]
enz.
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
while(arrayLengthLast <= arrayLength)
{
    tmp = _root.theBar.createEmptyMovieClip(namesArray[arrayLengthLast]+"v", j);
    tmp2 = tmp.createEmptyMovieClip("holder", 1);
    tmp2.loadMovie("../"+namesArrayPath[arrayLengthLast]+".jpg");
    tmp._x = xDistance;
    temp[arrayLengthLast] = tmp;
    tmp.onPress = function()
    {   
              trace(namesArrayPath[arrayLengthLast]+".php");
    }
    arrayLengthLast++;
    j++;
    xDistance = xDistance + 90;
}


Alles werkt goed behalve als ik op een van de plaatjes click, hij altijd undefined traced, inplaats van de desbetreffende naam(de trace word uiteindelijk een getURL, maar zo is het makkelijk testen).

Verwijderd

in de tracefunctie verwijs je naar een namesArrayPath van de mc tmp. je moet verwijzen naar _root.namesArrayPath.

  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
het helpt niet krijg nog steeds undefined

namesArrayPath is een global array, dus dat _root maakt niks uit.

  • McVirusS
  • Registratie: Januari 2000
  • Laatst online: 22-04 11:34
Trace eens de arrayLengthLast? Dan weet je tenminste of die klopt :).

  • Niakmo
  • Registratie: Juni 2001
  • Laatst online: 10-02-2024
als ik die trace geeft hij bij elk plaatje 10 aan :S, terwijl hij eigenlijk opvolgend 0 tot en met 10 moet outputten bij de des betreffende plaatjes.


ik heb het probleem redelijk geisoleerd. Er komen dus 10 onPress functies met in elke functie een trace van namesArrayPath[arrayLengthLast]. Dus alle functies tracen de zelfde waarde omdat nadat de functie is aangemaakt de namesArrayPath[arrayLengthLast] gewoon zijn huidige waarde heeft. \

Het is nu dus de bedoeling dat bij het aanmaken van elke functie in de while loop de waarde van namesArrayPath[arrayLengthLast] op dat moment overgenomen word.

ik heb het eerst met eval geprobeerd, maar dat maakte niks uit.


edit:


met de volgende code werkt het dus wel.

code:
1
2
3
4
tmp.id = arrayLengthLast
tmp.onPress = function() {
        trace(namesArrayPath[this.id]+".php");
};

[ Voor 76% gewijzigd door Niakmo op 04-11-2005 18:53 ]