我的swf中有一个变量我想接收XML。它是一个等式形式的整数值。如何收到'formatcount'的XML值?
我的变量
//Variable I want to grab XML<br>
//formatcount=int('want xml value to go here');
formatcount=int(count*count/100);
路径
formatcount = myXML.FORMATCOUNT.text()
我的XML
<?xml version="1.0" encoding="utf-8"?>
<SESSION>
<TIMER TITLE="speed">1000</TIMER>
<COUNT TITLE="starting position">10000</COUNT>
<FORMATCOUNT TITLE="ramp">count*count/1000</FORMATCOUNT>
</SESSION>
答案 0 :(得分:0)
您需要编写或使用能够解析和评估表达式的parser:
检查示例this表达式的评估者:
基于上面的lib(未测试):
import it.sephiroth.expr.CompiledExpression;
import it.sephiroth.expr.Parser;
import it.sephiroth.expr.Scanner;
import flash.display.Sprite;
public class Example extends Sprite
{
public function Example() {
super();
var myXML:XML=<SESSION>
<TIMER TITLE="speed">1000</TIMER>
<COUNT TITLE="starting position">10000</COUNT>
<FORMATCOUNT TITLE="ramp">count*count/1000</FORMATCOUNT>
</SESSION>;
var expression: String = myXML.FORMATCOUNT.toString();
var scanner: Scanner = new Scanner( expression );
var parser: Parser = new Parser( scanner );
var compiled: CompiledExpression = parser.parse();
var count:Number=Number(myXML.COUNT.toString());
var context: Object = {
count:count
};
var formatcount:Number = compiled.execute( context );
}
}
答案 1 :(得分:0)
您似乎正在尝试在XML文件中进行计算,而当您尝试从XML中读取方程时,我不明白为什么需要在XML文件本身的级别。从XML文件中读取值并在AS中进行任何计算都会容易得多。
如果您已将<COUNT>
的值读入代码中的变量(我通过myXML.COUNT
推测),那么就这样做:
formatcount = count*count / 10000;
计数在哪里:
var count:Number = myXML.COUNT;
与您的问题一样,我不确定我是否回答了您的实际问题,或者我是否误解了它。祝你好运。