0 Replies Latest reply on May 5, 2017 8:59 AM by irshadc123

    Flex 3: Assignation du BackgroundImaged de l'application centrale dynamiquement (via AS3) en utilisant une variable de type Bitmap.

    irshadc123 Level 1

      Bonjour,

      Voici le contexte: Je suis en train de travailler en Flex3 (mx), sur une demande désirant faire afficher le fond d'écran de l'application cliente en dynamique. Avant la demande, cela se faisait ainsi: sur le tag <mx:Application..>, définir le backgroundImage de cette facon: backgroundImage="@Embed('/assets/img/monImage.jpg')".

       

      Et maintenant, je récupère l'image en dynamique:

      ...

      private function afficherImageDeFond(_image:ByteArray):void

      {

        var loaderWpDefault:Loader = new Loader();

        loaderWpDefault.loadBytes(_image);     

        loaderWpDefault.contentLoaderInfo.addEventListener(Event.COMPLETE, function(event:Event):void

        {

          var _loaderWpDefault:LoaderInfo = event.target as LoaderInfo;

          var bmp:Bitmap = Bitmap(_loaderWpDefault.content);

          imgFondEcran.source = bmp;

         

           //Autres traitements se font ici....

        }

      }

      ...

      '_image' est un ByteArray de ce style la:

      _image = flash.utils.ByteArray (@15e48dc1)

      bytesAvailable = 620888 [0x97958]

      endian = "bigEndian"

      length = 620888 [0x97958]

      objectEncoding = 3

      position = 0

      shareable = <exception thrown by getter>

       

      Ainsi, l'image récupérée est transmise dans un controle image qui simule un backgroundImage sur l'application.

      Le problème est que lorsque l'écran s'élargie, l'image ne s'aggrandie pas.

       

      Deux choses sont envisageable donc:

      1. Faire de sorte que l'image s'aggrandie. En occurance, quand on clique sur le menu gauche de l'application, des sous-menus apparaissent et fait aggrandir l'écran. J'ai essayé les propriétés sur l'image => scaleContent="true" ET maintainAspectRatio="false".

      2. Voir si on peut affecter la variable bmp (dans la fonction loaderCompleteHandler) au backgroundImage de l'application. Jusqu'ici j'ai eu l'erreur suivante:

      Error: Impossible de charger [object Bitmap].

      at mx.skins::RectangularBorder/updateDisplayList()

      at mx.skins.halo::HaloBorder/updateDisplayList()

      at mx.skins::ProgrammaticSkin/validateDisplayList()

      at mx.managers::LayoutManager/validateDisplayList()

      at mx.managers::LayoutManager/doPhasedInstantiation()

      at mx.managers::LayoutManager/validateNow()

      at mx.core::Application/resizeHandler()

      at mx.core::Application/commitProperties()

      at mx.core::UIComponent/validateProperties()

      at mx.managers::LayoutManager/validateProperties()

      at mx.managers::LayoutManager/doPhasedInstantiation()

      at mx.managers::LayoutManager/doPhasedInstantiationCallback()

       

       

      Merci d'avance si quelqu'un peut m'aider sur les points cités ou si vous avez une autre solution.