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

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

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

Регистрация: Nov 2010
Сообщений: 9
По умолчанию Запутался с классами, не работает dispatchEvent

Привет все. Извините за длинное вступление. Просто постараюсь описать всю глубину пробелмы
Есть клас Game которому передается ссылка на stage
Код AS3:
public class Game extends Sprite
	{
		public var stageLink:Stage;
		public var gameLink:Game;
		public var main_menu_screen:MainMenu;
		public var level_select_screen:LevelSelect;
		public var game_screen:The_Game;
public function Game(_stage:Stage):void
		{
			stageLink = _stage;
			gameLink = this;
			stageLink.addChild(gameLink);
....
из него вызывается клас The_Game
Код AS3:
public function play_the_game(level) {
			game_screen = new The_Game(this,level);
			addChild(game_screen);
		}
Далее класс The_Game
Код AS3:
public function The_Game(passed_class:Game, level:int)
		{
			main_class = passed_class;
			main_stage = main_class.stageLink;
//... тут добавляется на main_stage наш MovieClip 
level_map = new LevelMap();
			level_map.gotoAndStop(level);
			addChild(level_map);
//добавляю листенер
level_map.addEventListener(floating_score.MY_EVENT2, showPopandos);
//далее добавляем очки
var new_floating_score:floating_score = new floating_score(this);
......
в конструкторе класса floating_score пишу
Код AS3:
public class floating_score extends MovieClip {
		public var dir:Number = Math.random()*6.2831853;
		public var main_class1:The_Game;
		public var money:int;
		public static const MY_EVENT2:String = "MyEvent2";
 
public function floating_score(passed_class:The_Game) {
			main_class1 = passed_class;
			main_class1.dispatchEvent(new Event(MY_EVENT2));
.....
По идее должна сработать функция showPopandos (в ней просто trace("я запустилась")
Но ничего такого не происходит.
Помогите пожалуйста разобраться.

Добавлено через 5 минут
Изменил привязку листенера на такую
Код AS3:
this.addEventListener(floating_score.MY_EVENT2, showPopandos);
Теперб функция showPopandos вызывается, но вот такой кусочек кода
Код AS3:
var q:floating_score = floating_score(e.target);
не срабатывает, пишет
Ошибка типа Coercion: невозможно преобразовать The_Game@b6200b1 в floating_score


Последний раз редактировалось gcolor; 09.11.2010 в 17:04.
Создать новую тему   Часовой пояс GMT +4, время: 00:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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