为什么不运行if里的语句呢?
读取xml文件里的一个值,trace了一下,报的值就是0,但是就是不运行if里面的语句.郁闷了,请大家帮帮忙~~~
function btn_show(p) {
var _loc3 = _root.xml_object.firstChild;
isSale = _loc3.childNodes[p].childNodes[4].childNodes[3].childNodes;
trace( "isSale= "+isSale);
if (isSale == undifined || isSale == " " || isSale== "0 ") {
_root.btn1.enabled = false;
_root.btn1._visible = false;
}
}
好象是类型上的错误,isSale里保存的不是数字类型的,我用
trace( "isSale= "+isSale+2);输出的是02或是12,不知道怎么才能好,请大家帮忙
[解决办法]
isSale = _loc3.childNodes[p].childNodes[4].childNodes[3].childNodes;
注意这个, 这个得到的并不是一个基本类型,你可以
trace( "type : "+(typeof isSale));
看看它是什么类型。是个Object
可以仔细了解一下DOM模型以及里面的一些知识。
另外
isSale = _loc3.childNodes[p].childNodes[4].childNodes[3].childNodesfirstChild.nodeValue.toString();
这样解析XML是很复杂的。
有个老外写了个XMLObject类, 很好用。搜一下这个类,应该可以找到的。
得到的应该是一个
Array.
不知道你的XML的具体格式。所以不知道怎么说。
我想你应该这样写
isSale = _loc3.childNodes[p].childNodes[4].childNodes[3].;
[解决办法]
通过parseFloat()或者parseInt()函数可以将字符串类型转换成浮点型或者整型,你试一试
[解决办法]
他不是因为
”parseFloat()或者parseInt()函数“
的原因,AS会自动转。
比如
var s = "1 ";
trace(s==1);会是true
前提是你不要强制S的类型。
根本原因可能是isSale 本身就是 '0 '
那if也是不会执行了。
我一般喜欢
toString()一次