2010-03-11 3 views
1

Mon minuteur a trois variables que je peux remonter à la fenêtre de sortie, mais ne sais pas comment les passer à la minuterie. Comment transmettre les valeurs XML à ma minuterie?XML, les valeurs de passage à minuterie, AS3

Objectif
Je veux tester avec un document XML avant de le connecter à un socket XML.

myXML

<?xml version="1.0" encoding="utf-8"?> 
<SESSION> 
<TIMER TITLE="speed">100</TIMER> 
<COUNT TITLE="starting position">-77777</COUNT> 
<FCOUNT TITLE="ramp">1000</FCOUNT> 
</SESSION> 

myFlash

//COUNTER 'instance of mytext on stage' 
/* 
fields I want to change with XML 
*/ 
     //CHANGE TO 100 
     var timer:Timer = new Timer(10); 
     //CHANGE TO -77777 
     //var count:int = 0; 
     var myString:String = "-77777"; 
     var count:int = int(myString); 
     //CHANGE TO 1000 
     //var fcount:int = 0; 
     var myStrg:String = "1000"; 
     var fcount:int = int(myStrg); 

     //myXML.COUNT.text 

timer.addEventListener(TimerEvent.TIMER, incrementCounter); 
timer.start(); 

function incrementCounter(event:TimerEvent) { 
    count++; 
    fcount=int(count*count/1000);//starts out slow... then speeds up 
    mytext.text = formatCount(fcount); 
} 

function formatCount(i:int):String { 
    var fraction:int = i % 100; 
    var whole:int = i/100; 

    return ("0000000" + whole).substr(-7, 7) + "." + (fraction < 10 ? "0" + fraction : fraction); 
} 

//LOAD XML 
var myXML:XML; 
var myLoader:URLLoader = new URLLoader(); 
myLoader.load(new URLRequest("time.xml")); 
myLoader.addEventListener(Event.COMPLETE, processXML); 

//PARSE XML 
function processXML(e:Event):void { 
    myXML = new XML(e.target.data); 
    trace(myXML.COUNT.*); 
    trace(myXML); 

//TEXT 
var text:TextField = new TextField(); 
text.text = myXML.COUNT.*; 
text.textColor = 0xFF0000; 
addChild(text); 
} 

-CE QUE CECI « a commenté mon nombre var et a fait ce

ex

nombre var. Int = Nombre (myXML.COUNT.text());

ex.
nombre var: int = int (.. MyXML * (@ TITRE == 'position de départ'));

TypeError: Erreur # 1009: Impossible d'accéder à une propriété ou une méthode d'une référence d'objet nul. à numbersXMLtext_fla :: MainTimeline/frame1()


RESSOURCES

Cookbook de OReilly ActionScript 3.0, chapitre 12 cordes, Chapitre 20 XML

+0

Le pseudo-code que je fournis dans ma réponse montre à quel point vous pouvez accéder aux valeurs que vous voulez à partir du XML extrait fourni. Ce que vous faites avec ces valeurs est à vous. Si vous voulez que les noms des variables soient timer, count et fcount, changez-les en conséquence ... pas sûr de ce que vous cherchez. – heavilyinvolved

+0

Oui, ça devrait être dur. J'ai essayé d'utiliser votre structure mais il me manque quelque chose. Je regarde ce site http://www.senocular.com/flash/tutorials/as3withflashcs3/?page=4 –

Répondre

0

Pour la valeur de vitesse:

var speed:int = int(myXML.*.(@TITLE == 'speed')); 

Pour la valeur de la position de départ:

var startingPoint:int = int(myXML.*.(@TITLE == 'starting position')); 

Pour la valeur de la rampe:

var ramp:int = int(myXML.*.(@TITLE == 'ramp')); 

Ces extraits utilisent E4X pour analyser les valeurs xml. Il convient également de noter que selon l'aspect du fichier XML final, cette approche devra probablement être modifiée en conséquence. Bonne chance!

+0

Merci pour la réponse. Je vais accepter cela comme un modèle, car E4X est quelque chose que je dois commencer à utiliser, mais cela n'a jamais fonctionné. Mon prochain post sera plus précis. –