Синтаксический анализ XML Flash ActionScript 2.0 работает на некоторых узлах, а не на других. - PullRequest
1 голос
/ 03 марта 2010

Я работаю над простой каруселью.

Моя проблема возникает при попытке вставить значения узлов в виде текста в мои подэлементы всплывающей подсказки. Вот мой xml:

<promotions>        
        <promotion>
            <visuel>/papyrus/8a8b8d2e26fa35b60126faf90a4d002f-20100223141718.gif</visuel>
            <remise>55</remise>

            <libelle>produit 1</libelle>
            <description>contenu test 1</description>
            <dateDebut>22/02/2010</dateDebut>
            <dateFin>10/03/2010</dateFin>
        </promotion>

        <promotion>
            <visuel>/papyrus/8a8b8d2e26fa35b60126faf9a2f30032-20100223141750.gif</visuel>

            <remise>15</remise>
            <libelle>Pneus</libelle>
            <description>Promo sur les pneus</description>
            <dateDebut>01/03/2010</dateDebut>
            <dateFin>01/05/2010</dateFin>
        </promotion>


        <promotion>
            <visuel>/papyrus/8a8b8d2e26fa35b60126fafa1fa5003a-20100223141955.gif</visuel>
            <remise>7</remise>
            <libelle>produit 1</libelle>
            <description>Test promo 1</description>
            <dateDebut>10/01/2010</dateDebut>
            <dateFin>10/03/2010</dateFin>
        </promotion>        
</promotions>

А вот AS 2.0, где он должен быть загружен и вставлен в правый видеоролик и тексты.

    xml.onLoad = function(success:Boolean) {
   if(success) {
        var nodes = this.firstChild.childNodes;
        numOfItems = nodes.length;
        for(var i=0;i<numOfItems;i++)
        {
            var t = home.attachMovie("item","item"+i,i+1);
            t.angle = i * ((Math.PI*2)/numOfItems);
            t.onEnterFrame = mover;
            t.icon.inner.loadMovie(nodes[i].childNodes[0].firstChild);      
            t.promo= nodes[i].childNodes[1].firstChild.nodeValue;
            t.produit= nodes[i].childNodes[2].firstChild.nodeValue;
            t.dateDebut= nodes[i].childNodes[4].firstChild.nodeValue;
            t.dateFin= nodes[i].childNodes[5].firstChild.nodeValue;
            t.icon.onRollOver = over;
            t.icon.onRollOut = out;
        }
 } else {
       trace("Unable to load XML");
   }   
}

function over()
{
    home.tooltip.promo.text = this._parent.promo;
    home.tooltip.produit.text = this._parent.produit;
    home.tooltip.tipDebut.text = this._parent.dateDebut;
    home.tooltip.tipFin.text = this._parent.dateFin;
    home.tooltip._x = this._parent._x;
    home.tooltip._y = this._parent._y + (this._parent._height*0.15);
    home.tooltip.onEnterFrame = Delegate.create(this,moveTip);
    home.tooltip._alpha = 100;
}

Результаты я показываю мне каждое изображение в формате gif (что означает, что я правильно указываю и загружаю дочерний узел), текстовое содержимое загружается справа (узел [libelle] и узел [описание]), узлы, содержащие числа или дату, т нагрузка. Где я не прав?

1 Ответ

1 голос
/ 04 марта 2010

Я попытался запустить ваш код, и он вроде как работает для меня - хотя я могу только догадываться о том, как ваши элементы настроены на сцене.

Некоторые вещи, которые я заметил:

  1. Путь к каждому файлу .gif начинается с /, который не очень хорошо работает для меня, но, как вы говорите, он работает для вас ...
  2. мувиклипы item0, item1, item2 добавляются перед всплывающей подсказкой, так что, возможно, изображения затеняют ваш текст? (но это может быть именно так, как устроена моя сцена.)
  3. Это может быть глупый вопрос, но встроили ли вы полный набор символов для ваших динамических текстовых полей? Это может объяснить, почему буквы появляются, а не цифры.

Также я не знаю, что делают ваши функции mover, out и moveTip (можете ли вы их также опубликовать?).

Надеюсь, это немного поможет ...

...