Forums Développement Multimédia

Aller au contenu

- - - - -

Boucle dans Flex Builder en AS3

FLEX AS3

19 réponses à ce sujet

#1 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 26 April 2014 - 20:52 PM

Bonjour,

J'ai un traitement qui dure longtemps et pour éviter de cliquer 2 fois sur le bouton création je voudrais désactiver le bouton Création.
Le problème c'est qu'il se met jamais à disable. Je ne vois pas trop la solution
En avez-vous une à me proposer.

En espérant vraiment avoir une réponse
Merci en bonne soirée.

Voici un exemple


<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
          xmlns:s="library://ns.adobe.com/flex/spark" applicationDPI="160">
<fx:Declarations>
  <!-- Placer ici les éléments non visuels (services et objets de valeur, par exemple). -->
</fx:Declarations>
<s:Button x="121" y="145" label="Création" id="bt" click="lancer(event)"/>
<fx:Script>
  <![CDATA[
   import mx.events.FlexEvent;
 
   protected function lancer(event:MouseEvent):void
   {
           bt.enabled=false;
           for(var i:int=1; i<100000; i++) {
            trace("Entrée");
           }
           bt.enabled=true;
   }
 
  ]]>
</fx:Script>
</s:Application>
 


#2 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 28 April 2014 - 08:56 AM

Re-Bonjour,

Personne n'a de solution à me proposer pour mon problème ou y en a t'il pas ou personne ne connais flex

#3 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 28 April 2014 - 09:07 AM

Bonjour,

Es-tu sûr que la boucle de 100 000 intérations n'est pas traitée trop vite pour être visible ?
Le plus simple serait de rendre disable ton bouton sur clic, sans rien faire d'autre.
Puis de faire diffuser un événement à la fin de ton long traitement et d'écouter cet événement.
Lorsque l'événement est diffusé, tu exécutes une fonction pour remettre enable ton bouton.
Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#4 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 28 April 2014 - 09:32 AM

Bonjour Benzouye,

Non
Mon bouton est à disabled au début il a FALSE :(

as-tu une autre solution ? merci

#5 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 28 April 2014 - 10:51 AM

Je ne comprends pas ...

Tu dis que ton problème c'est que le bouton ne se met pas disable (enabled = false).
En exécutant ton code, vois-tu les 100 000 "Entrée" s'afficher dans la console ?
Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#6 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 28 April 2014 - 13:25 PM

Malgre le disabled il n'apparait pas avec l'effet disabled pendant la boucle ouf..... pas facile j'espere que tu comprends maintenant
si tu as flex tu vas vite comprendre sinon :(

#7 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 28 April 2014 - 14:40 PM

Essayes peut-être avec le mouseEnabled :

   protected function lancer(event:MouseEvent):void
   {
                   bt.enabled=false;
                   bt.mouseEnabled=false;
                   for(var i:int=1; i<100000; i++) {
                    trace("Entrée");
                   }
                   bt.enabled=true;
                   bt.mouseEnabled=true;
   }
 

Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#8 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 28 April 2014 - 15:20 PM

as tu vraiment flex ? sinon merci pour ton aide mais c'est toujours pareil désolé

#9 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1682 messages

Posté 28 April 2014 - 15:25 PM

je ne vois pas trop l'intérêt de passer ton bouton à l'état désactivé pour le réactiver juste après la boucle ?

#10 Benzouye

  • Members
  • PipPipPipPipPipPipPipPip
  • 583 messages

Posté 28 April 2014 - 15:34 PM

Voir le messageMika2, le 28 April 2014 - 15:20 PM, dit :

as tu vraiment flex ? sinon merci pour ton aide mais c'est toujours pareil désolé

Non je travaille uniquement en AS3, mais je connais un peu la logique flex ...

Voir le messagepol2095, le 28 April 2014 - 15:25 PM, dit :

je ne vois pas trop l'intérêt de passer ton bouton à l'état désactivé pour le réactiver juste après la boucle ?

Afin que l'utilisateur ne puisse lancer plusieurs fois le traitement avant la fin de celui-ci ... je suppose ...
Benzouye
Travaille avec FlashDevelop 4 + Flex SDK 4.6 open source

#11 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 28 April 2014 - 16:45 PM

C'est pour te faire voir
il y a un gros traitement derrière ces indices ;)

Afin que l'utilisateur ne puisse lancer plusieurs fois le traitement avant la fin de celui-ci ... je suppose ... OUI

Je suis quand même surpris qu'aucun médiateur n'a trouvé une solution à ce problème scolaire.

#12 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1682 messages

Posté 28 April 2014 - 21:57 PM

tu es dans une boucle synchrone donc l'utilisateur ne pourra pas lancer plusieurs fois le traitement avant la fin de celui-ci.

#13 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 29 April 2014 - 08:23 AM

Boujour pol2095,

ça je le savais :( mais c'est quoi la solution ??????

+1 bravo

#14 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1682 messages

Posté 29 April 2014 - 09:20 AM

la solution, utiliser callLater, vu que ta boucle est dans la même image, le bouton na pas le temps de s'actualiser.
Mais bon, ça complique et ça n'a pas d'intérêt ?

#15 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 29 April 2014 - 11:04 AM

Merci pol2095 tu me sauves là
existe t'il le même pour navigator.pushView c'est quand j'appel ma fenêtre il y a une attente de 5s

#16 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1682 messages

Posté 29 April 2014 - 11:12 AM

c'est la transition qui dure 5s où ça fige ?

#17 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 29 April 2014 - 12:07 PM

ca fige pendant 5s

#18 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1682 messages

Posté 29 April 2014 - 15:37 PM

tu dois lancer un gros calcul à la création de la vue, je pense.

#19 Mika2

    Ceinture Marron

  • Members
  • PipPipPipPipPipPip
  • 142 messages

Posté 29 April 2014 - 15:52 PM

oui

#20 pol2095

  • Members
  • PipPipPipPipPipPipPipPip
  • 1682 messages

Posté 29 April 2014 - 16:33 PM

c'est pour une appli Android ou Iphone ?




Répondre à ce sujet



  

1 utilisateur(s) li(sen)t ce sujet

0 membre(s), 1 invité(s), 0 utilisateur(s) anonyme(s)

authorised training centre

Centre de Formation Mediabox - Adobe et Apple Authorised Training Center.

Déclaré auprès de la Direction du Travail et de la Formation Professionnelle

Mediabox : SARL au capital de 62.000€ - Numéro d'activité : 11 75 44555 75 - SIRET : 49371646800035

MEDIABOX, 23, rue de Bruxelles, 75009 PARIS

FFP