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

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

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

Регистрация: Mar 2013
Сообщений: 290
Post Недоступность текстфилда в многофреймовом мувиклипе.

Воссоздаю игру Minesweeper, из книжки Эмануэля Феронато, по наводке KumoKairo.
Код класса Main скопирован из исходника, так что моей ошибки набора здесь нет.

Код использует созданный в библиотеке мувиклип tile_movieclip, пролинкованный галочкой к одноименному классу, который содержит 4 фрэйма.
На каждом фрэйме находится одно из состояний квадратика: неоткрыт, открыт с числом, взрыв, флаг.

Второй фрейм содержит несгруппированный, несимвольный квадрат, поверх которого находится динамический текстфилд:
Нажмите на изображение для увеличения
Название: Snap2.png
Просмотров: 148
Размер:	57.1 Кб
ID:	30092

И вот с ним возникает проблема.
В одной из функций основного документ-класса к нему идет обращение вот так:

Код AS3:
 
package
{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import flash.events.TimerEvent;
	import flash.utils.Timer;
 
	public class Main extends Sprite
	{
		//...
		private var game_container:Sprite = new Sprite;
		private var tile:tile_movieclip;
		//...
 
		public function Main()
		{
		//...
		}
 
		private function onTileClicked(e:MouseEvent):void
		{
			if (! gameOver)
			{
				var clicked_tile:tile_movieclip = e.currentTarget as tile_movieclip;
 
				//...
						if (clickedValue > 0 && clickedValue < 9)
						{
							clicked_tile.gotoAndStop(2);
							clicked_tile.tile_text.text = clickedValue.toString();
						}
				//...
			}
		}
     }
}
То есть через конструкцию
Код AS3:
clicked_tile.tile_text.text
Запуск проекта проходит без ошибок.
Но когда я нажимаю мышкой на квадратик такого типа, то это приводит к ошибке:
Цитата:
TypeError: Error #1009: Cannot access a property or method of a null object reference.
at Main/::onTileClicked()
Если протрейсить вот так:
Код AS3:
trace("clicked_tile.tile_text == ", clicked_tile.tile_text)
То получим:
Цитата:
clicked_tile.tile_text == null
То есть, по каким-то причинам, этот текстфилд равен нулл? Но почему?
Или может быть, тут есть некий трюк, не работающий для версии Flash CS3.

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

Теги
Error #1009 , feronato , game , minesweeper
Опции темы
Опции просмотра

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

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


 


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


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