Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   value is not a function (http://www.flasher.ru/forum/showthread.php?t=205211)

Маруська 25.11.2013 06:40

value is not a function
 
Код AS3:

var i:Number;
var inv:Array = new Array (inv0,inv1,inv2)
 
for (i=0; i<inv.length; i++){
 
inv[i].addEventListener(MouseEvent.CLICK, gotoURL);}
 
function gotoURL(e:MouseEvent):void
{ 
  var currentNumber:int;
  for(var i:int = 0; i<inv.length; i++)
  {
          if(e.currentTarget.name == ['inv'+i])
          {gotoNewURL(i)};
  };
}
 
function gotoNewURL(i):void{
 }

ошибка при компиляции TypeError: Error #1006: value is not a function.
для строки inv[i].addEventListener(MouseEvent.CLICK, gotoURL);

В чём дело? почему работать не хочет

caseyryan 25.11.2013 08:31

Что за объекты inv0,inv1,inv2?
Проблема очевидно в них, так как если в массив положить пустые мувиклипы, то все работает

Маруська 25.11.2013 09:54

Цитата:

Сообщение от caseyryan (Сообщение 1153453)
Что за объекты inv0,inv1,inv2?

это в самом деле пустые мувиклипы.
но не работает. увы =(

caseyryan 25.11.2013 11:34

Значит проблема не в указанном коде, а где-то в другом месте. Этот код у меня работает.
Возможно у Вас где-то выше есть незавершенное объявление переменой или какая-нибудь точка стоит, или запятая, там где ее быть не должно. В общем нужно смотреть остальное

Маруська 25.11.2013 11:50

всмысле, если жать Continue, то потом всё работает. Как избежать появление ошибки - вот в чём вопрос.

Добавлено через 5 минут
непонятно почему, но если элементов в массиве больше 10-ти, то работает.. мистика

caseyryan 25.11.2013 12:15

Нет там никакой мистики, 100% банальный человеческий фактор
замените код в цикле вот на этот:

Код AS3:

for (i=0; i<inv.length; i++){
    if (inv[i] is EventDispatcher) {
          var ed:EventDispatcher = inv[i] as EventDispatcher;
          ed.addEventListener(MouseEvent.CLICK, gotoURL);
    } else {
        trace(inv[i], "не является диспетчером событий");
    }
}

и посмотрите что он выдаст

Возможно у вас один из объектов inv0, inv1, inv2 вообще не существует (имя не задано например), поэтому в массив попадает null, а у null нет методов

Frost47rus 25.11.2013 13:56

тут был коммент, который был удалён автором.


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

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