Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.11.2013, 06:40
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 1  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Question 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);

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

Старый 25.11.2013, 08:31
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 2  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Что за объекты inv0,inv1,inv2?
Проблема очевидно в них, так как если в массив положить пустые мувиклипы, то все работает

Старый 25.11.2013, 09:54
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 3  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
Цитата:
Сообщение от caseyryan Посмотреть сообщение
Что за объекты inv0,inv1,inv2?
это в самом деле пустые мувиклипы.
но не работает. увы =(

Старый 25.11.2013, 11:34
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 4  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Значит проблема не в указанном коде, а где-то в другом месте. Этот код у меня работает.
Возможно у Вас где-то выше есть незавершенное объявление переменой или какая-нибудь точка стоит, или запятая, там где ее быть не должно. В общем нужно смотреть остальное

Старый 25.11.2013, 11:50
Маруська вне форума Посмотреть профиль Отправить личное сообщение для Маруська Найти все сообщения от Маруська
  № 5  
Ответить с цитированием
Маруська

Регистрация: Feb 2012
Сообщений: 205
всмысле, если жать Continue, то потом всё работает. Как избежать появление ошибки - вот в чём вопрос.

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

Старый 25.11.2013, 12:15
caseyryan вне форума Посмотреть профиль Отправить личное сообщение для caseyryan Найти все сообщения от caseyryan
  № 6  
Ответить с цитированием
caseyryan
 
Аватар для caseyryan

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Нет там никакой мистики, 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 нет методов

Старый 25.11.2013, 13:56
Frost47rus вне форума Посмотреть профиль Отправить личное сообщение для Frost47rus Найти все сообщения от Frost47rus
  № 7  
Ответить с цитированием
Frost47rus
[+4 08.09.13]

Регистрация: May 2012
Сообщений: 131
тут был коммент, который был удалён автором.

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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