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

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

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

Регистрация: Mar 2013
Сообщений: 290
По умолчанию Таймер внутри Мувиклипа.

Создаю код для таймера внутри мувиклипа с именем экземпляра stamina1_mc.

Фрагмент выглядит так:

Код AS3:
 
var _root = MovieClip(root); 
var counter_f:int = _root.f;                                         //читаем значение внешней переменной
 
var Flowtimer:Timer = new Timer(1000, counter_f);         //1-second timer init
 
Flowtimer.addEventListener(TimerEvent.TIMER, flowbar);  //задаем функцию события
 
Flowtimer.start();                                               //запускаем таймер
 
function flowbar(e:TimerEvent):void
{
// здесь код функции
}
Но при запуске выдается вот такая ошибка:

Код:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
	at Progressbar_fla::stamina_mc_6/flowbar()
	at flash.utils::Timer/flash.utils:Timer::_timerDispatch()
	at flash.utils::Timer/flash.utils:Timer::tick()

Что делать, как разрулить проблему?

Старый 03.04.2013, 15:32
Hauts вне форума Посмотреть профиль Отправить личное сообщение для Hauts Посетить домашнюю страницу Hauts Найти все сообщения от Hauts
  № 2  
Ответить с цитированием
Hauts
 
Аватар для Hauts

блогер
Регистрация: Feb 2008
Адрес: Россия, Новосибирск, Академгородок
Сообщений: 2,113
Записей в блоге: 1
Отправить сообщение для Hauts с помощью ICQ Отправить сообщение для Hauts с помощью Skype™
У вас, похоже, ошибка в том месте, где написано "// здесь код функции"
__________________
hauts.ru

Старый 03.04.2013, 16:02
Fogflasher вне форума Посмотреть профиль Отправить личное сообщение для Fogflasher Найти все сообщения от Fogflasher
  № 3  
Ответить с цитированием
Fogflasher

Регистрация: Mar 2013
Сообщений: 290
Цитата:
Сообщение от Hauts Посмотреть сообщение
У вас, похоже, ошибка в том месте, где написано "// здесь код функции"
Да, действительно!
Я, в прошлом примере, для простоты кода опустил еще вот такие строки:

Код AS3:
var j:uint = 0;
var ind2:MovieClip = parent.getChildByName("indicator2_dtx") as MovieClip;
var ind3:MovieClip = parent.getChildByName("indicator3_dtx") as MovieClip;
 
//... здесь идет код указанный в прошлый раз, а вот функция:
 
function flowbar(e:TimerEvent):void
{
 
 
		if (counter_f <= 100)
		{
 
//     		        ind2.text = String(counter_k) + "%";     //ВЫЗЫВАЕТ ОШИБКУ
//			ind3.text = String(j) + "%";                 //ВЫЗЫВАЕТ ОШИБКУ
 
			this.gotoAndStop(counter_k + j);
 
			j++;
 
			trace("j++ ", j);
			trace("counter_f ", counter_f);
 
 
 
		}
	else
		{
			counter_k = 100;
			this.gotoAndStop(counter_k);
//			ind2.text = String(counter_k) + "%";   //ВЫЗЫВАЕТ ОШИБКУ
			trace("Limit!");
		}		
 
 
 
}
То есть обращение к внешним текстовым полям как к переменным вызывает ошибку, но почему... не понимаю.

Хотя, я вообще не очень догоняю эту технику обращения к внешим объектам через такой слишком закрученный getChildbyName метод...
Должно же быть что-то проще (ладно об этом наверное лучше в отдельном посте спросить).

Причем, нет бы написать что проблема в этих полях, но идет указание на параметры таймера, который оказывается вообще не причем.

Добавлено через 28 минут
Блин, я все понял. Это же переменные типа TextField, а не MovieClip... Ой дурак.
Исправил, теперь эти строки не глючат.

Hauts, спасибо за помощь.

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

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

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


 


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


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