XML, передать значения таймеру, AS3 - PullRequest
1 голос
/ 11 марта 2010

В моем таймере есть три переменные, которые я могу отследить до окна вывода, но не знаю, как передать их таймеру. Как передать значения XML в мой таймер?

Назначение
Я хочу протестировать документ XML, прежде чем пытаться подключить его к сокету 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);
 }

ЭТО "закомментировал мой счетчик варов и сделал это

ех.

var count: int = Number (myXML.COUNT.text ());

ех.
var count: int = int (myXML. *. (@ TITLE == 'начальная позиция'));

TypeError: Ошибка # 1009: Не удается получить доступ к свойству или методу пустой ссылки на объект. по номерамXMLtext_fla :: MainTimeline / frame1 ()


РЕСУРСЫ

Поваренная книга OReilly ActionScript 3.0, глава 12, глава 20, XML

1 Ответ

0 голосов
/ 11 марта 2010

Для значения скорости:

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

Для значения начальной позиции:

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

Для значения линейного изменения:

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

Эти фрагменты используют E4X для анализа значений xml. Следует также отметить, что в зависимости от того, как будет выглядеть конечный XML, этот подход, вероятно, необходимо будет соответствующим образом изменить. Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...