Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Загрузка данных из двух более внешних источников... (http://www.flasher.ru/forum/showthread.php?t=143982)

iNils 31.08.2010 14:08

Цитата:

я вроде тип указал, он вроде и символизирует о том что в данной переменной хранится
Из имени переменной должно быть понятно, что она означает. И тип тут не причем.
Цитата:

ну так вобщем то пишут в оф доках, я их по большей степени придерживаюсь
Не надо на доки кивать. Там пишут и e, и еvent. А еще там пишут, что e может означать Error. И что делать будем когда одновременно будет Event и Error?

random13 31.08.2010 14:20

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

iNils 31.08.2010 14:23

Причем тут тип, когда речь идет об имени переменной?
Судя по вашей интерпретации хелпа, нужно писать так:
Код:

function test (e:Event):void {
        try {
                cx++;
        } catch (e:Error) {
                trace (e);
        }
}

Что приводит к конфликту. Не может e быть и Error и Event одновременно.

Heavy 31.08.2010 14:39

Код AS3:

var l = new URLLoader;
l.addEventListener(Event.COMPLETE, loadComplete);
l.load(new URLRequest(url))
 
private function loadComplete(e:Event):void
{
      trace(e.target.data)
}

Собственно вопрос про "e" возник потому что на строке
Код AS3:

private function loadComplete(e:Event):void

выдает 1013: The private attribute may be used only on class property definitions.

random13 31.08.2010 16:05

пфф, я имел ввиду вот это:
Код AS3:

private function startDownLoad():void
{
      var l:URLLoader = new URLLoader;
      l.addEventListener(Event.COMPLETE, loadComplete);
      l.load(new URLRequest(url));
}
 
private function loadComplete(event:Event):void
{
      trace(event.target.data)
}

то есть два отдельных метода

Psycho Tiger 31.08.2010 18:52

random13, в конвенции AS3 четко сказано, что писать нужно event.

Heavy, private доступен только в классах, а Вы пишете в кадрах. Либо уберите private, либо пишите в классах. Второе - лучше.

in4core 31.08.2010 19:03

а коллбек это что то типа :

Код AS3:

private function startDownLoad():void
{
      var l:URLLoader = new URLLoader;
      l.addEventListener(Event.COMPLETE, loadComplete);
      l.load(new URLRequest(url));
}
 
private function loadComplete(event:Event):void
{
    func(event.target.data);
}
private function func(o) {
trace(o)
}

Тоесть коллбек - запустит функцию только тогда когда все загружено

Heavy 31.08.2010 19:19

о, спасибо

Psycho Tiger 31.08.2010 19:37

in4core, ну в Вашем примере он запускает метод :)

callback подразумевает что будет выполнен метод (или функция), который не зашит в коде, а передается параметрически, например, аргументом. Иначе это мало похоже на коллбэк - это скорее просто часть зашитой логики, которую по каким то причинам вынесли в метод, поэтому тут очень спорный вопрос, является ли строчка
Код AS3:

func(event.target.data);

в примере in4core callback`ом.

Однако же пример у него всё равно правильный, только коллбэк находится вот здесь:
Код AS3:

l.addEventListener(Event.COMPLETE, loadComplete);

Может быть это и хотел сказать нам in4core, а метод func он ввёл для каких-то других целей, судить не берусь.


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

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