AH... j'avais lu 'var private' et je devenais *pas bien du tout* :)

>
> euh perso ca me parrait logique de ne surtout pas utiliser une var
> local
> quand on veut obtenir une reference a un fichier
>
> une var local n'existe que dans le scope local
>
> une fois que ce scope est fermé on ne peut plus utilisé cette var
>
> avec ca
> ----
>                 private function on_click(event : MouseEvent) : void {
>                         var file : FileReference = new FileReference
> ();
>                         file.addEventListener(Event.SELECT,
> on_select);
>                         file.addEventListener(Event.COMPLETE,
> is_loaded);
>                         file.browse();
>                 }
> ----
>
> la var "file" n'est accessbile que depuis le scope de la function
> on_click
> en dehors de ce scope "file" n'existe pas
>
> avec ceci
> ----
> //class
> private var _file:FileReference ;
>
>         public function Explorer()
>         {
>             _file  = new FileReference() ;
>             _file.addEventListener( Event.SELECT , _select);
>             _file.addEventListener( Event.CANCEL , _cancel);
>         //..
>
> ----
>
> la var "_file" est dans le scope de la class et donc existe et
> persiste
> tant que l'instance de la class existe
>
>
> lorsque que l'on deal avec du file I/O, en bas niveau flash va devoir
> garder ce qu'on appelle un "file handle" ouvert pour pouvoir acceder
> au fichier
> (voir http://en.wikipedia.org/wiki/File_descriptor et aussi
> http://en.wikipedia.org/wiki/Stdio.h)
>
> pour que ce "file handle" reste ouvert et donc accessible il faut que
> la var persiste
>
> ce qui amha explique pourquoi FileReference aura un comportement
> bizarre (ou plantera) si
> on l'utilise en var local depuis une methode ou si on utilise des
> fonctions local pour les events,
> et un comportement normal dans une var déclarée sur la class et des
> methodes déclarées sur la classe pour ecouter les events.
>
> bref le petit bout de code que montre Eka c'est ce que j'aurais fait
> naturellement,
> mais plus que ca c'est la seule maniere pour que ca marche.
>
> zwetan
>
>
>
> >


--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à