Rss Feed

FileReference.browse et Flash player 10

Peut être avez vous eu la désagréable surprise de recevoir des mails de clients pas contents car leur site plante dès qu’ils veulent envoyer un document. Or, vous n’avez rien touché au site entre temps, donc vous commencez à farfouiller dans le code, jusqu’à ne voir qu’une seule explication : c’est le flash player 10.

Et bien oui, Adobe a certainement renforcé la sécurité au niveau du browse pour rendre impossible l’appel de la fonction FileReference.browse() lors d’un appel traditionnel. C’est à dire que si vous appelez la fonction sur le click, ou tout autre intéraction de l’utilisateur (souris ou clavier), cela fonctionnera sans soucis. Par contre, si vous le faite depuis une fonction traditionnelle (par exemple après avoir enregistré votre objet), et bien cela vous enverra le joli message suivant :

Main Thread (Suspended: Error: Error #2176: Certaines actions, par exemple celles qui ouvrent une fenêtre contextuelle, ne peuvent être invoquées que par une interaction de l'utilisateur, telle qu'un clic de souris ou un appui sur une touche.)
flash.net::FileReference/browse [no source]
flexBugs/onCreationComplete
flexBugs/___flexBugs_Application1_creationComplete
flash.events::EventDispatcher/dispatchEventFunction [no source]
flash.events::EventDispatcher/dispatchEvent [no source]
mx.core::UIComponent/dispatchEvent
mx.core::UIComponent/set initialized
mx.managers::LayoutManager/doPhasedInstantiation

Nous n’avons pas encore trouvé de solution permettant de contourner le problème (si vous en avez une, n’hésitez pas à la poster dans les commentaires), mais cela va vous obliger à changer votre code, et ouvrir directement le browse sur une interaction utilisateur.

Partager :
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • Blogplay
  • LinkedIn
  • Technorati
  • Twitter

Articles sur le même sujet :

  1. Pseudo comportement synchrone en flex
  2. Création d’image à partir d’un DisplayObject
  3. Flash Player 9 Moviestar – vidéo H.264….

Commentaires

  1. Maximus says:

    J’ai le même problème y a t’il une solution en AS2?
    Mon problème est aussi présent sur fileReference.download() et je n’est pas d’erreur particulière et biensur depuis la MAJ du flash player 10.
    Merci pour vos réponses.
    A+

  2. Sam says:

    Bonjour, je rencontre le même problème sur notre logiciel. Nous l’utilisons dans le cadre d’un upload de fichier, le tout effectué via un appel par iframe. Lorsqu’on charge la page de manière directe, cela fonctionne. Mais la mise à jour de sécurité semble ne pas permettre lors d’un appel via iframe. Par contre, aucune erreur n’est retournée.

  3. Matsiya says:

    @maximus: il n’est pas sur que ce soit un problème d’AS2 ou 3, mais plutot d’un problème du flash player. Donc il n’y a très probablement pas de solution malheureusement.

    @Sam: en effet, c’est étrange que via l’iFrame cela ne fonctionne plus, il n’y a pas de raison pourtant. Mais bon, c’est un peu la misère le couple flash player + iFrame :)

  4. Dizynotip says:

    Je suis dans la même m*rde que vous, allez voir là => http://www.tsoin.com/asblog/2008/11/17/flash10-filereference-error-2176/

    Ca fonctionne quand on appelle une fonction directement depuis l’onRelease par contre mon event onComplete ne fonctionne plus…

  5. StimL says:

    Bonjour,

    Il n’y a toujours pas de solution à ce problème ?
    J’ai exactement le même problème depuis que je suis passé sur flash Player 10 avec mon fileReference.browse() …

    Merci d’avance pour vos solutions.

    StimL.

  6. Matsiya says:

    @StimL

    Non, il n’y a pas de solutions à ce problème, et je ne pense pas qu’il y en aura un jour, étant donné que c’est une protection mise en place dans le Flash Player. Il faut donc changer son code pour tenir compte de cette spécificité.
    Désolé :(

Laisser un commentaire

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word