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

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

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

Регистрация: Jul 2001
Адрес: Питер
Сообщений: 820
Отправить сообщение для Junge с помощью ICQ
По умолчанию ошибка компиляции Error #1009

TypeError: Error #1009: Cannot access a property or method of a null object reference.
Код AS1/AS2:
vse.dalee.addEventListener(MouseEvent.CLICK, f_dalee);
function f_dalee(event: MouseEvent): void {
 
	var i:int;
	for (i=0;i<3;i++){
		if (vse['r'+i].length < 2){			
		    vse['alert'+i].alpha = 1;
		}else{
			vse['alert'+i].alpha = 0;
		}
		if (r3 == null){
			vse.alert3.alpha =1
		}else{
			vse.alert3.alpha =0
		}
		if (vse['alert'+i].alpha == 0 && vse.alert3.alpha == 0){
				vse.nextFrame();
		}
	}
 
}
//должен перейти в следующий кадр в мувике, но компилятор ругается что доступа к объекту r1 нет, но его и вправду в следующем кадре нет и там он мне не нужен

Добавлено через 26 минут
помогло добавление break после vse.nextFrame(); не знаю правда почему

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Это не ошибка компиляции, а рантайм ошибка (ошибка времени исполнения).
Ошибки компиляции возникают на этапе сборки, и препятствуют сборке проекта в принципе
__________________
Ко мне можно и нужно обращаться на ты)

Старый 13.03.2016, 21:15
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 3  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
я так понял vse - это мувик?Тогда что должна значить такая строка
Цитата:
if (vse['r'+i].length < 2){
?
Вообще,jungle,убедительная просьба почитать хэлп особенно ту часть, где описаны что можно писать после точки для разных типов.В твоем предыдущем топике была такая запись:
Код AS3:
var i:int; 
for (i = 0; i < 10; i++){	
reginfo[i] = r+i.text;
ты объявляешь i как целочисленную переменную, но потом обращаешься к какому-то свойству text,которого у этого типа нет.

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

Регистрация: Jul 2001
Адрес: Питер
Сообщений: 820
Отправить сообщение для Junge с помощью ICQ
if (vse['r'+i].length < 2){ здесь у нас текстовые поля в мувике vse под названиями r0 r1 r2, проверяется чтобы было от 2х символов введено в них, так и не понял как кроме length == 0 сделать проверку что , что-то введено, null undefined '' не прокатило.
во втором примере мне надо было не от i брать свойство а от r+i, не знал как записать

Старый 13.03.2016, 22:34
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 5  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,283
Если требуется узнать введено ли что-либо в текстовом поле, то надо писать
Код AS3:
vse['r'+i].text.length

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

Регистрация: Jun 2012
Адрес: Новосибирск
Сообщений: 6,644
Записей в блоге: 4
Очень ненадежный способ проверки, который покажет, что что-то введено, даже если туда ввести пробел.
Вообще, лучше сразу вынести эту хрень в переменную
Код AS3:
 
var textField:TextField = vse['r'+i] as TextField; // не забыть импортировать flash.text.TextField;  вначале
if (textField.text.replace(/\s+/g, "").length > 0) { // регуляркой убираем пробелы, и проверяем есть ли что-то кроме них
    trace("Что-то введено");
}
__________________
Ко мне можно и нужно обращаться на ты)

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

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

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


 


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


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