Форум 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)
-   -   delegate. есть проблемы. (http://www.flasher.ru/forum/showthread.php?t=75972)

3s3 23.02.2006 17:18

delegate. есть проблемы.
 
Примерный код:

Код:

import mx.utils.Delegate;
 
_global.Foo = function (xml_file) {
 this.mData = new Array();
 
 this.mXML = new XML ();
 this.mXML.load (xml_file);
 this.mXML.onLoad = Delegate.create (this, this.Func1);
};

Foo.prototype.Func1 = function () {
  // здесь парсится XML
  // и идет запись в массив this.mData
}
 
Foo.prototype.getData = function () {
 trace (this.mData); // ПУСТОЙ!
}

при вызове функции getData оказывается, что все старательно записываемое в массив mData не записалось.

Как решить проблему?

Antares 23.02.2006 17:29

Не мешать приемы из AS2 и AS1. В вашем случае пользоваться Function.call и все.

3s3 23.02.2006 23:35

Цитата:

Сообщение от Antares
Не мешать приемы из AS2 и AS1. В вашем случае пользоваться Function.call и все.

ок. исправил на вот это:

Код:


class Foo {
 var mData = new Array();
 var mXML = null;
 
  function Foo (xml_file) {
        mXML = new XML ();
        mXML.func = Func1;
        mXML.scope = this;
        mXML.onLoad = function (success) {
        if (success) {
          this.func.call (this.scope);
          }
        }
};

  function Func1 () {
        // здесь парсится XML
        // и идет запись в массив mData
  }
 
  function getData () {
        trace (mData); // ОПЯТЬ ПУСТОЙ!
  }

что теперь делать? :(

ir73 23.02.2006 23:54

опять намешал AS 1 и 2 : ))

3s3 24.02.2006 00:02

будьте любезны -- ткните носом! :)

7thsky™ 24.02.2006 02:11

судя по коду проблема в парсере.

массив возвращается пустой или вместно него undefined?
если первое то проблема по любому в парсере

3s3 24.02.2006 14:05

Цитата:

Сообщение от 7thsky™
судя по коду проблема в парсере.

массив возвращается пустой или вместно него undefined?
если первое то проблема по любому в парсере

нет.
В парсере проблем нет.
Доказано простейшей проверкой, когда я не парсил xml, а делал внутри класса var со значением 1.
В коде парсера я ей ставлю значение 2.
Если протрейсить эту переменную в ф-ции getData, то получаем 1.


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

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