Output = jens undefined trykker man på firkanten er output = firkanten lever
Hvorfor forsvinder firkanten ikke når den bliver lavet om til et array objekt? Man kan ikke længere komme i kontakt med den, men funktioner tilknyttet til den inden "transformeringen" virker stadig.
Hvorfor ville man nogen sinde ønske at gøre dette? Jeg ved det ikke, jeg prøver bare på at få en større forståelse for AS.
I dette særtema ser vi på, hvordan cloud og AI bliver fundamentet for virksomhedernes digitale forretning, og hvordan de nye muligheder for automatisering og forretningsværdi kan udnyttes uden at miste overblik, sikkerhed og menneskelig kontrol.
Det er noget af det mærkeligste jeg længe har set :-) Du kan ikke lave et movieclip om til en array, det er to helt forskellige ting. Du kan derimod f.eks. fjerne din firkant: firkant_mc.clear()
eller du kan fjerne dit movieclip: firkant_mc.removeMovieClip()
Et movieclip er ikke en "variabel" som alle andre. Hvad skulle:
_root = "hej";
Så give? Skulle hele filmen forsvinde?
Det samme er tilfældet for Textfields og Buttons - bare fordi du ændrer en reference til objektet, så findes det endnu.
Sådan er det faktisk for alle objekter:
a = new Object(); a.hello = "world"; b = a; delete a; trace(b,hello); // "world";
Selvom "a" er slettet findes objektet endnu. Hvis jeg sletter b, så "findes" objektet stadig, men da der ingen "referencer" er til objektet overhovedet, så vil flashplayerens interne garbage collection slette objektet fra hukommelsen ved førstkommende lejlighed.
Nu kan man ikke via nogen variabel få fat i objektet "outer" længere, men da der stadig er en reference (inde i objektet selv), så bliver det ikke fjernet fra hukommelsen.
Prøv for eksempel at køre ovenstående 10000 gange og tjek processens ramforbrug - det er stort!
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.