Toon posts:

[Flash] Variabele MovieClip.

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hey luitjes.

Ik roep een movieclip(A) op, bijv.:
_root.A._x

Nou heb ik A t/m Z en wil ik de MovieClip naam variabel maken, bijv.:
Letter="A";
_root.Letter._x

Maar dit werkt niet, het zal wel iets stoms zijn, maar ik krijg het niet voor elkaar.
Heb je niet zoiets als bij PHP, waar je een $ voor een variabele zet?

Bij voorbaat dank :)

Verwijderd

_root[letter]._x

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Je kan deze benaderen via [] dus:
code:
1
_root[letter]._x

:)

"You're only as good, as what you did last week."


Verwijderd

???

Verwijderd

Topicstarter
Bedankt gasten, het werkt :)

Uiteraard.

Nou heb ik nog een vraagje....

Ik ben bezig met random een waarde uit een array te halen.
De waarde die eruit gehaald word moet worden verwijderd uit de array, want hij mag niet nog een keer voorkomen.

Dit is mijn array:
PHP:
1
2
3
<?
alfabet = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M", "N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
?>

De bedoeling is dus om random hier een waarde uit te halen en dat 36x tot ik alle waarde gehad heb.

Het is geen probleem om random een waarde uit de array te halen, maar het verwijderen snap ik niet helemaal.
Uit de dictionary haal ik de functie myArray.splice(start, deleteCount, value0,value1...valueN);

Dit probeer ik:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?
onClipEvent (load) {
    arrayAantal = 26;
}
onClipEvent (enterFrame) {
    Tijd = Tijd++;
    if (Tijd>15) {
        alfabet = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M", "N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
        kiezer = random(arrayAantal);
        trace (alfabet[kiezer]);
        alfabet.splice( kiezer, 1 );
        Tijd = 0;
    }
}
?>

Dit werk echter niet goed.

Kunnen jullie me verder op weg helpen.
Is de manier van aanpakken goed, kan het makkelijker?

Verwijderd

Topicstarter
En waarom werkt dit niet?
PHP:
1
2
3
<?
setProperty (_root[Letter], _y, _root[Letter]._y+3+snelheid);
?>

en dit wel?
PHP:
1
2
3
<?
setProperty (_root[Letter], _y, _root.A.y+3+snelheid);
?>

:?

Verwijderd

Eerst maar ns het tweede probleem, this will do:
code:
1
2
3
4
5
6
7
8
9
10
onClipEvent(load){
alfabet=new Array("A","B","C","D","E","F","G","H","I","J","K","L","M", "N","O","P","Q","R","S","T","U","V","W","X","Y","Z");;}
onClipEvent(enterFrame){
tijd++;
if(tijd>=15){
welke=Math.floor(Math.random()*alfabet.length);
trace (alfabet[welke]);
alfabet.splice(welke,1);
tijd=0;
}}

Tis uit mn hoofd dus kan zijn dat er iets niet klopt, maar volgens mij is het wel kee :)...

edit

sorry voor het vernaaien van de tabel :)...

/edit

Verwijderd

Topicstarter
Gozert, bedankt dat werkt ook!!!

Schiet lekker op zo :P

  • oh,when?
  • Registratie: April 2000
  • Niet online

oh,when?

...

Op donderdag 29 november 2001 15:38 schreef B-Top het volgende:
???
damn..jij bent ook altijd eerder..

;(

;)

"You're only as good, as what you did last week."


  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

Of probeer het zo:
(In ieder geval blijft de functie dan niet doorgaan als de Array al leeg is.)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
onClipEvent (load) {
        alfabet = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M", "N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
        random_alfa = function(){
                Tijd++;
                if(Tijd>15){
                        kiezer = random(alfabet.length);
                        letter = alfabet.splice(kiezer, 1).toString();
                        if(alfabet.length == 0){
                                getLetter = null;
                        }
                        Tijd = 0;
                        trace(letter);
                        return letter;
                }
        }
        getLetter = random_alfa;
}

onClipEvent (enterFrame) {
        getLetter();
}
?>

Gemiddelde Nederlanders zijn maar halve Nederlanders.


Verwijderd

Topicstarter
Op donderdag 29 november 2001 16:12 schreef mvkooten het volgende:
En waarom werkt dit niet?
PHP:
1
2
3
<?
setProperty (_root[Letter], _y, _root[Letter]._y+3+snelheid);
?>

en dit wel?
PHP:
1
2
3
<?
setProperty (_root[Letter], _y, _root.A.y+3+snelheid);
?>

:?
Dat alfabet verhaal heb ik helemaal werken zoals ik het wil B-)

Ik zit alleen nog met het bovenstaande probleem.

Verwijderd

setProperty is flash 4 syntax.... :)

Verwijderd

Op donderdag 29 november 2001 16:42 schreef cjs het volgende:
Of probeer het zo:
(In ieder geval blijft de functie dan niet doorgaan als de Array al leeg is.)
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
onClipEvent (load) {
        alfabet = new Array("A","B","C","D","E","F","G","H","I","J","K","L","M", "N","O","P","Q","R","S","T","U","V","W","X","Y","Z");
        random_alfa = function(){
                Tijd++;
                if(Tijd>15){
                        kiezer = random(alfabet.length);
                        letter = alfabet.splice(kiezer, 1).toString();
                        if(alfabet.length == 0){
                                getLetter = null;
                        }
                        Tijd = 0;
                        trace(letter);
                        return letter;
                }
        }
        getLetter = random_alfa;
}

onClipEvent (enterFrame) {
        getLetter();
}
?>
eej cjs, jouw hebben we lanmg niet meer gezien..

Verwijderd

Topicstarter
Op donderdag 29 november 2001 16:54 schreef B-Top het volgende:
setProperty is flash 4 syntax.... :)
FOK, is er geen andere manier om dit op te lossen.

  • cjs
  • Registratie: Maart 2001
  • Niet online

cjs

Macromedian

Op donderdag 29 november 2001 16:59 schreef mvkooten het volgende:

[..]

FOK, is er geen andere manier om dit op te lossen.
_root[Letter] retouneert hier een string. (de letter uit het alfabet) Je moet hem dubbel evalueren om bij de MovieClip referentie te komen.
PHP:
1
2
3
<?
setProperty (_root[Letter], _y, _root[_root[Letter]]._y+3+snelheid);
?>

Gemiddelde Nederlanders zijn maar halve Nederlanders.


Verwijderd

Topicstarter
Op donderdag 29 november 2001 17:17 schreef cjs het volgende:

[..]

_root[Letter] retouneert hier een string. (de letter uit het alfabet) Je moet hem dubbel evalueren om bij de MovieClip referentie te komen.
PHP:
1
2
3
<?
setProperty (_root[Letter], _y, _root[_root[Letter]]._y+3+snelheid);
?>
Uhm.. dit snap ik niet helemaal.
[letter] is toch de variabele en niet [_root[letter]] ?
(het werkt trouwens ook niet)

En wat ik ook niet snap,
setProperty (_root[Letter], _y, _root.A._y+3);
is flash 4 syntax, maar waarom kan je bij "property" wel een variabele gebruiken en bij "Value" niet?

Verwijderd

Topicstarter
Gasten Laat maar.

De variabele moest nog een keer aangemaakt worden.
Het was geen Global :(

Wel vaag want de variabele werd wel 1x keer herkend zonder opnieuw aangemaakt te worden :?
Pagina: 1