Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   простой пример XML & Flash (http://www.flasher.ru/forum/showthread.php?t=94002)

this.create 03.04.2007 22:39

Цитата:

Сообщение от neFX
не могли бы подсказать как правильно сделать чтобы каждому ноду соответствовало создание нового текстового поля с уникальным именем.

xml файл forest.xml
Код:

<?xml version="1.0" encoding="UTF-8"?>
<main>
    <tree/>
    <tree/>
    <tree/>
</main>

код:
Код:

var main:MovieClip = this;
//
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("forest.xml");
//
myXML.onLoad = function(success):Void {
    if (success && !this.status) {
        var les:XMLNode = this.firstChild;
        var len:Number = les.childNodes.length;
        //
        for (i=0; i<len; i++) {
            var tf:TextField = main.createTextField('tf'+i, main.getNextHighestDepth(), 0, 0, 10, 10);
            tf.autoSize = true;
            tf.text = les.childNodes[i].nodeName;
            tf._y = 20*i;
        }
    }
};


DanQuimby 03.04.2007 22:40

изв я не решаю задачи за других
читай мой код там есть идея

screamge 03.04.2007 22:58

DanQuimby прав, не стоит загромаждать код, единственное что плохо в его примере что нелзя менять месторасположение текстовых нодов (только в столбик). что касается второго вопроса...можно устанавливать условие во время цикла и запихивать текстовые поля в два мувиклипа. затем выставлять значение _visible = true/false

DanQuimby 03.04.2007 23:30

screamge просто был вопрос почему не работает
был дано обьяснение
А дальше уже как когориться "дерзай" :)
я просто сделал быстро "на коленках"
без доработок .

this.create 04.04.2007 00:20

Цитата:

Сообщение от neFX
Вопрос
Вот допустим я вывожу не все ноды а только столько сколько мне требуется, а на 2 кадре вывожу оставшиеся..
а как сделать чтобы старые текстовые поля удалялись..
можно конечно делать всё в разных мувах и потом делать removeMovieClip(); , но мне кажется можно проще сделать..

xml - тот же.
Код, первый кадр:
Код:

stop();
var main:MovieClip = this;
var len:Number = 0;
var les:XMLNode;
var part:Number = 2;
var pos:Number = 0;
var tfAr:Array = [];
//
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("forest.xml");
//
myXML.onLoad = function(success):Void  {
    if (success && !this.status) {
        les = this.firstChild;
        len = les.childNodes.length;
        //
        for (i=0; i<part; i++) {
            var tf:TextField = main.createTextField('tf'+i, main.getNextHighestDepth(), 0, 0, 10, 10);
            tf.autoSize = true;
            tf.text = les.childNodes[i].nodeName+' - '+main._currentframe;
            tf._y = 20*pos;
            tfAr[i] = tf;
            pos++;
        }
        main.gotoAndStop(2);
    }
};
//
function nexPage():Void {
    stop();
    //
    var arLen:Number = tfAr.length;
    for (i=0; i<arLen; i++) {
        tfAr[i].removeTextField();
    }
    //
    pos= 0;
    for (i=part; i<len; i++) {
        var tf:TextField = main.createTextField('tf'+i, main.getNextHighestDepth(), 0, 0, 10, 10);
        tf.autoSize = true;
        tf.text = les.childNodes[i].nodeName+'  - '+this._currentframe;
        tf._y = 20*pos;
        pos++;
    }
}

Второй кадр:
Код:

nexPage();

NtM 04.04.2007 01:36

можно использовать removeTextField() или просто скрывать их, а потом когда нужно показывать


Часовой пояс GMT +4, время: 13:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.