![]() |
|
||||||||||
|
|
|
|||||
|
Вопрос таков: есть объект (экземпляр класса) который загружает должен загрузить в себя данные из ХМЛ. написал я это так:
class Myclass{
.................
function loadData(filename){
var tmp_xml = new XML()
tmp_xml.onLoad = function(){
// вот здеся я что то делаю с загружеными данными
.......
//а здеся какимто образом нужно сообщить Myclass что мы загрузили данные.
}
tmp_xml.load(filename)
}
................
}
Можно через прототип, но помоемому это не выход. Как сделать чтоб можно было указать ХМЛ кто его "ПАПА", при этом "не выносить" никаких переменных за мой класс Кто че может посоветовать? |
|
|||||
|
Могу тебе посоветовать поискать по форуму, так как это вопрос один из самых часто задаваемых.
__________________
:::::::::::: sump :::::::::::: |
|
|||||
|
ты мне ченить полезное бы посоветовал, а не поиск - думаешь не искал?, да и за форумом слежу вижу какие темы подымались какие нет!
|
|
|||||
|
объяви у класса Myclass статическое свойство loaded, которое будет инициализироваться по завершению обработки Myclass.loaded=true или статический метод DoSomething, который будет исполняться по завершению обработки твоего xml и вызывай его из ф-ции-обработчика Myclass.DoSomething().
|
|
|||||
|
как я обращусь из ХМЛ к этому методу если я не знаю кто 'ПАПА' этого хмля?
в онЛоаде я не знаю кому пренадлежит этот ХМЛ,в этом то и вся проблема как это выяснить!!!! |
|
|||||
|
Тыпробовал? ты же класс назвал единожды и метод тоже имеет уникальное имя в пределах пространства имен класса. Так в чем проблема? Статические свойства и методы на то и статические, что к ним можно обращаться, не создавая при этом объекта-экземпляра класса. Из любого места твоего кода. Так работает класс Math - ты же можешь пользоваться им везде (хоть и в приведенном коде) и тебя абсолютно не интересует "папа" в твоей функции-обработчике
|
|
|||||
|
Регистрация: Nov 2005
Сообщений: 221
|
Насколько я вижу можно очень просто:
class MyClass {
private var fileName:String = "foo.xml";
private var xml:XML;
public function MyClass(){
this.loadData(this.fileName);
}
private function loadData(fileName:String):Void{
var xml = new XML();
/*
* home можно выставить как угодно, но если 'xml' типизируется, то
* присвоить 'home' не удастся(если только через ассоциативный ...).
*/
//xml.home = this;
var home = this;
xml.ignoreWhite = true;
xml.onLoad = function(){
// ...
home.onDataLoad(this);
}
}
}
|
|
|||||
|
хе хе все оказалось просто KPaul ты прав, только я немного подругому написал:
вот я тормоз 3 часа голову над этим ломал !!!! |
|
|||||
|
Banned
Регистрация: Dec 2003
Сообщений: 3,925
|
Способ с ссылкой на самого себя -- это раз. Но куда красивее и удобнее mx.utils.Delegate...
|
|
|||||
|
ну а зачем мне эти "удобные mx.utils.Delegate..." использовать? когда можно простенька все сдалать ?
|
![]() |
![]() |
Часовой пояс GMT +4, время: 22:25. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|