Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
3049 connectés 

  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Probleme avec un LineSeries affichant 3000 valeurs en Flex

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Probleme avec un LineSeries affichant 3000 valeurs en Flex

n°2083396
toupoutou2
Posté le 20-06-2011 à 16:21:46  profilanswer
 

Bonjour à tous,  
je vais essayer de décrire mon problème .
Dans le cadre d'un projet je dois construire un graphique temps Réel en utilisant flex.  
J'ai donc essayer trouver un composant répondant à ma problématique , j'ai trouver cela sur le net en cherchant un peu :
http://www.iwobanas.com/2009/07/sc [...] tscroller/
 
-J'ai donc fait quelque test avec ce composant et tout allait bien, on peut zoomer, scroller ...  
Mais malheureusement lorsque je met le dataprovider et que je dépasse 1500 valeurs le déplacement dans le graphique est très ralentis. J'ai chercher à optimiser  le code en suivant ces règles :
http://www.adobe.com/fr/devnet/fle [...] rf_10.html
Rien y  fait les déplacements dans le graphique avec 1500 valeurs est très lent .  
Auriez vous des idées sur les optimisations à apporter .
Voici le code  :

Code :
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
  3.        xmlns:s="library://ns.adobe.com/flex/spark"
  4.        xmlns:mx="library://ns.adobe.com/flex/mx"
  5.        xmlns:charts="com.iwobanas.charts.*"
  6.        creationComplete="init()"
  7.        >
  8. <fx:Declarations>
  9.  <!-- Place non-visual elements (e.g., services, value objects) here -->
  10.  <charts:ChartScroller id="scroller" chart="{chart}" />
  11. </fx:Declarations>
  12. <fx:Script>
  13.  <![CDATA[
  14.   import com.vector.DataVector;
  15.   import flash.utils.getTimer;
  16.   import mx.collections.ArrayCollection;
  17.   import mx.core.Application;
  18.   import mx.core.FlexGlobals;
  19.   //Application.application.stage.quality = StageQuality.LOW;
  20.   //FlexGlobals.topLevelApplication.stage.quality = StageQuality.LOW;
  21.   /** Variables relatives aux évènements générés par le Timer **/
  22.   // Variable contenant un nombre généré aléatoirement compris entre 0 et 30
  23.   public var nombreGenere:Number;
  24.   // Variable contenant le nombre généré converti en int
  25.   public var nombreInt:int;
  26.   // Instanciation de l'objet Timer avec un décompte de 30 et un intervalle d'une seconde
  27.   public var monTimer:Timer = new Timer(10,3001);
  28.   public var i:uint = 0;
  29.   // Création d'un objet type ArrayCollection qui contiendra les nombres entiers
  30.   // générés aléatoirement
  31.   [Bindable]
  32.   //var valeurs:DataVector = new DataVector();
  33.   var valeurs:ArrayCollection = new ArrayCollection();
  34.   // Création d'un objet type ArrayCollection
  35.   public function init():void
  36.   {
  37.    // Ajout un écouteur sur le timer lorsque le Timer tourne
  38.    //monTimer.addEventListener(TimerEvent.TIMER, genererNombre);
  39.    // Active le timer
  40.    //monTimer.start();
  41.    trace(getTimer());
  42.    for(var j:uint = 0 ;j< 3000;j++)
  43.    {
  44.     genererNombre();
  45.     if(j == 3000)
  46.     {
  47.      trace(getTimer());
  48.      chart.dataProvider = valeurs;
  49.      chart.validateNow();
  50.      trace(getTimer());
  51.     }
  52.    }
  53.   }
  54.   public function genererNombre():void
  55.   {
  56.    i++;
  57.    // Génère un nombre aléatoire compris entre 0 et 30
  58.    nombreGenere = Math.random() * 10 ;
  59.    // Arrondi le nombre de type float  
  60.    nombreInt = Math.round(nombreGenere);
  61.    // Ajout ce nombre arrondi dans l'ArrayCollection
  62.    valeurs.addItem({y1: nombreInt, y2: valeurs.length});
  63.    //chart.validateNow();
  64.    // Affichage d'un message confirmant l'ajout
  65.    //monLab.text = "Ajout de la valeur " + nombreInt + " dans l'ArrayList";  
  66.   }
  67.  ]]>
  68. </fx:Script>
  69. <mx:Panel title="ChartScroller example - 2 series with DateTimeAxis" width="100%" height="100%">
  70.  <mx:LineChart id="chart" width="820" height="337"
  71.       gutterLeft="40" gutterRight="10"  >
  72.   <mx:series>
  73.    <mx:LineSeries id="series2" xField="y2" yField="y1" horizontalAxis="{lhAxis}"  />
  74.   </mx:series>
  75.   <mx:horizontalAxis>
  76.    <mx:LinearAxis id="lhAxis" minimum="0" maximum="10" >
  77.    </mx:LinearAxis>
  78.   </mx:horizontalAxis>
  79.   <mx:verticalAxis>
  80.    <mx:LinearAxis id="vAxis1" maximum="10" />
  81.   </mx:verticalAxis>
  82.   <mx:horizontalAxisRenderers>
  83.    <mx:AxisRenderer placement="bottom" axis="{lhAxis}" />
  84.   </mx:horizontalAxisRenderers>
  85.  </mx:LineChart>
  86. </mx:Panel>
  87. </s:WindowedApplication>


A++ merci d'avance.


---------------
Mon topic VDS/ACH
mood
Publicité
Posté le 20-06-2011 à 16:21:46  profilanswer
 

n°2084053
toupoutou2
Posté le 22-06-2011 à 23:28:31  profilanswer
 

Personne pour m'éclairer ? ;)


---------------
Mon topic VDS/ACH
n°2089868
toupoutou2
Posté le 18-07-2011 à 10:39:10  profilanswer
 

up


---------------
Mon topic VDS/ACH
n°2091620
toupoutou2
Posté le 26-07-2011 à 21:56:44  profilanswer
 

up


---------------
Mon topic VDS/ACH
n°2092003
abais
Posté le 28-07-2011 à 21:20:56  profilanswer
 

en regardant vite fait, ta boucle est configurée tel que j n'atteindra jamais 3000 puisque tu as utiliser "<" et non "<=" à 3000...


Message édité par abais le 28-07-2011 à 21:21:18

---------------
Le membre ci-contre n'est pas responsable du message ci-dessus.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Flash/ActionScript

  Probleme avec un LineSeries affichant 3000 valeurs en Flex

 

Sujets relatifs
[Scilab] Problème utilisation fonction datafitproblème pour travailler sur des fichiers textes en PHP
CouchDB-app problème uploadingProblème programme calculatriceTI-89 T
problème (opérateur manquant) dans Requete SQL sous Excel VBAProblème de requete SQL
probléme OrdImageProbléme avec la fonction STEnvelope()
probleme avec le DATE_FORMATProblème de variable PHP
Plus de sujets relatifs à : Probleme avec un LineSeries affichant 3000 valeurs en Flex


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR