Форум 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)
-   -   [AS2]*XML.childNodes.nodeName в своем классе (http://www.flasher.ru/forum/showthread.php?t=69310)

seeker2005 19.09.2005 11:10

[AS2]*XML.childNodes.nodeName в своем классе
 
Как можно зарегистрировать в своем классе MyClass функцию listName, которая возвращала бы nodeName документа?
Документ загружается в класс MyClass. Отдать массив childNodes экземпляру класса MyClass получается, а вот потом взять listName - нет :mad: nodeName у экземпляра класса MyClass при этом работает. Уже по всякому пробовал - как с extends XML, так и просто через var my_xml:XML в классе MyClass.

IvanBatsuev 19.09.2005 12:51

Код покажи...
А то не очень ясно...

seeker2005 19.09.2005 13:00

Кусок из класса:

class test extends XML
{
public function test()
{
super("<playlist><romantic><r></r></romantic><arabic></arabic></playlist>");
}

public function get lists():Array
{
return this.firstChild.childNodes;
}
public function get listName():String
{
var s = this;
return s.nodeName;
}
}

var tt:test = new test();
var ar:Array = new Array();
ar = tt.lists;
trace(ar[0].nodeName);// здесь без проблем все работает
trace(tt.lists[0].listName);// здесь выводит как undefined

silin 19.09.2005 22:13

tt.lists[0] не принадлежит классу test, геттер не работает..
можно так (не знаю тока зачем оно надо)
class test extends XML
{
public function test()
{
super("<playlist><romantic><r></r></romantic><arabic></arabic></playlist>");
}

public function get lists():Array
{
return this.firstChild.childNodes;
}
public function get listName():String
{
var a=[],x=this.lists;
for(var i=0;i<x.length;i++) a.push(x[i].nodeName);
return a;
}
}
/////////
var tt:test = new test();
trace(tt.listName[0]);// romantic

seeker2005 20.09.2005 06:44

Как вариант подойдет конечно, но... Моя вина, не объяснил сути - надо создать пользовательское API для плейлиста... Плейлист хранится во внешнем xml документе (для простоты понимания выкинул и сделал описание внутри). Надо сделать функционал, чтобы например пользователь мог сделать вот так:

var pl:Playlist = new Playlist();
trace(pl.lists.length); // количесво сохраненных пользовательских листов
trace(pl.lists[0].listName); // название плейлиста

Причем важно, чтобы были и методы set и get. По сути listName - это повторение функционала nodeName, за тем исключением, что будет реализовано еще и сохранение в файл.

Вариант с созданием просто документа xml внутри класса Playlist тоже я так понимаю результата на даст по части nodeName?

Просто в принципе, можно реализовать через методы set и get?

IvanBatsuev 20.09.2005 07:30

а ignoreWhite=true ты установил?

seeker2005 21.09.2005 06:53

да, установил...
тока это то тут причем?


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

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