مشکل این کد چیه؟ (xml)

s.o.a.d

Member
سلام
موضوع بهتری واسه سوالم پیدا نکردم

شرح قضیه :
1 فایل xml دارم که توش توی یه childnode مشخصات و اسم یه کالا هست
2- مشخصات توی اتریبیوته
3- 2 تا فریم داریم تو کار
فریم 1:
1- 2 تا دکمه که رو onPress این هست
کد:
_root.code = "majidonline"
و
_root.code = "s.o.a.d"

esc  + gp (2)

فریم 2

PHP:
function loadXML(loaded) {
    if (loaded) {
        codech = [];
        xmlNode = this.firstChild;
        total = xmlNode.childNodes.length;
        for (i=0; i<total; i++) {
            codech[i] = xmlNode.childNodes[i].childNodes[0];
        }
        for (i=0; i<total; i++) {
            if (codech[i]=code) {
                name = xmlNode.childNodes[i].childNodes[0];
                brand = xmlNode.childNodes[i].attributes["brand"];
                vaziat = xmlNode.childNodes[i].attributes["vaziat"];
                break;
            }
        }
    } else {
        content = "file not loaded!";
    }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.load("Mobile.xml");
xmlData.onLoad = loadXML;



سه تا dynamic txt هم با var های name و brand و vaziat داریم

حالا مشکل

واسه اولی، یعنی majidonline همه اتریبیوتاش رو لود میکنه و حله
ولی واسه s.o.a.d نه
باید چطوری باشه که درست شه؟ :-<

اینم xml


PHP:
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<g1>
    <j  brand="DG" vaziat="xl" >majidonline</j>
    <j  brand="PL" vaziat="xll" >s.o.a.d</j>
</g1>
 

arjmand200

Member
مشکلش تو اینجاست

PHP:
for (i=0; i<total; i++) {
            if (codech[i]=code) {
                name = xmlNode.childNodes[i].childNodes[0];
                brand = xmlNode.childNodes[i].attributes.brand;
                vaziat = xmlNode.childNodes[i].attributes.vaziat;
                trace(name);
                break;
            }
        }

چون همیشه مقدار total صفره یه trace ازش بگیر
اگه مشکلی با تک فریم شدن کارت نداری فریم اول رو بردار و تو یه دونه فریم کار کن
 

s.o.a.d

Member
مرسی از جوابت
البته این سوتی خودم بود که یادم رفت کل اسکریپت رو بزارم
اینه اصلش
اون قضیه حل شده

PHP:
function loadXML(loaded) {
    if (loaded) {
        var codech:Array = [];
        xmlNode = this.firstChild;
        total = xmlNode.childNodes.length;
        for (i=0; i<total; i++) {
            codech[i] = xmlNode.childNodes[i].childNodes[0];
        }
        for (j=0; j<total; j++) {
        var fff:String = codech[j];
        if (fff == code) {
                ch = j;
                trace ("yes!!!");
            }
        }
        //
        name = xmlNode.childNodes[ch].childNodes[0];
        brand = xmlNode.childNodes[ch].attributes["brand"];
        //
    } else {
        content = "file not loaded!";
    }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.load("Mobile.xml");
xmlData.onLoad = loadXML;

حالا مشکل دارم با مساوی قرار دادن یه string با یه Array
یعنی اونجا که باید codech[j] رو با code مقایسه کنم
قاعدتا باید codech[j] که از xml گرفته میشه string باشه دیگه؟
خوب code هم که "s.o.a.d" و string هست
حالا طبق help فلش اگه == قرار بدیم حله
ولی نمیدونم چشه این قضیه :shock:
 

arjmand200

Member
خوب میتونی با یکی از پارامترهای ارایه که اون رو به string تبدیل میکنه مشکلت رو حل کنی
البته من کد جدید رو تست نکردم اگه تست کنم بهت مشکلشو میگم
 

جدیدترین ارسال ها

بالا