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

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

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

Регистрация: Sep 2005
Сообщений: 85
По умолчанию не могу обратиться в parent.

Только начал изучать AS3 и сталкнулся с такой проблемой, делаю игру про космом как в соседней ветке, написал класс preloader:

Код AS3:
package main { 
     import flash.display.MovieClip; 
     import flash.events.*; 
 
     dynamic public class preloader extends MovieClip { 
           public function preloader() { 
 
                addEventListener(Event.ENTER_FRAME, Update); 
           } 
 
           public function Update(e : Event):void { 
                this.txt.text="превед";
	     removeEventListener(Event.ENTER_FRAME, Update); 
	     parent.gotoAndStop(2);
          } 
 
     } 
}
Прописал этот класс клипу который положил в первый кадр, а во тором кадре положил картинку. Компилирую выдаёт ошибку:

1061: Call to a possibly undefined method gotoAndStop through a reference with static type flash.displayisplayObjectContainer.

Как обратиться к timeline? trace(parent) даёт: [object MainTimeline]
А функцию не получается запустить.
__________________
www.MegaLuckyPlay.com

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

Регистрация: Jan 2009
Сообщений: 1,651
В as3 событие enterFrame создается не зависимо от того, лежит ли мувик на сцене, или нет. Т.е. у тебя мувик еще не добавлен на сцену (т.е. parent = null), а событие enterFrame возникает.
Нужно так:
Код AS3:
package main { 
     import flash.display.MovieClip; 
     import flash.events.*; 
 
     dynamic public class preloader extends MovieClip { 
           public function preloader() { 
                addEventListener (Event.ADDED_TO_STAGE,stageHandler);
           } 
 
           protected function stageHandler (e:Event):void {
                removeEventListener (Event.ADDED_TO_STAGE,stageHandler);
                addEventListener(Event.ENTER_FRAME, Update); 
           }
 
           public function Update(e : Event):void { 
                this.txt.text="превед";
	     removeEventListener(Event.ENTER_FRAME, Update); 
	     parent.gotoAndStop(2);
          } 
     } 
}
__________________
мой пустой блог

Старый 12.02.2010, 13:12
RonEXI вне форума Посмотреть профиль Отправить личное сообщение для RonEXI Найти все сообщения от RonEXI
  № 3  
Ответить с цитированием
RonEXI

Регистрация: Sep 2005
Сообщений: 85
Да не в этом проблема, я же говорю что у меня parent не null а [object MainTimeline].
Мне интересно почему любые функции которые я пытаюсь вызвать через parent.функция выдают ошибку компиляции.

Добавлено через 5 минут
Сделал так:

Код AS3:
package main { 
     import flash.display.MovieClip; 
     import flash.events.*; 
 
     dynamic public class preloader extends MovieClip { 
           public function preloader() { 
                addEventListener (Event.ADDED_TO_STAGE,stageHandler);
           } 
 
           protected function stageHandler (e:Event):void {
                removeEventListener (Event.ADDED_TO_STAGE,stageHandler);
				trace(parent);
	     		parent.gotoAndStop(2); 
           }
     } 
}
весеравно таже ошибка
__________________
www.MegaLuckyPlay.com

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

Регистрация: Jan 2009
Сообщений: 1,651
аа... я внимание не обратил. parent - он же displayObjectContainer и у него нет функции gotoAndStop.
Нужно привести к MovieClip его.
Код:
MovieClip(parent).gotoAndStop(2);
__________________
мой пустой блог

Старый 12.02.2010, 13:26
RonEXI вне форума Посмотреть профиль Отправить личное сообщение для RonEXI Найти все сообщения от RonEXI
  № 5  
Ответить с цитированием
RonEXI

Регистрация: Sep 2005
Сообщений: 85
заработало, спасибо.
__________________
www.MegaLuckyPlay.com

Старый 12.02.2010, 13:53
zuxul вне форума Посмотреть профиль Отправить личное сообщение для zuxul Найти все сообщения от zuxul
  № 6  
Ответить с цитированием
zuxul

Регистрация: Dec 2009
Адрес: 59°13′N, 39°54′E
Сообщений: 445
Записей в блоге: 1
Есть разница, или это идентичные конструкции с разным синтаксисом?
Код AS3:
(parent as MovieClip).gotoAndStop(2);

Старый 12.02.2010, 14:09
iflamberg вне форума Посмотреть профиль Отправить личное сообщение для iflamberg Найти все сообщения от iflamberg
  № 7  
Ответить с цитированием
iflamberg
 
Аватар для iflamberg

Регистрация: Jan 2009
Сообщений: 1,651
разница есть, но я не шарю =)
__________________
мой пустой блог

Старый 12.02.2010, 14:36
FlashRabbit вне форума Посмотреть профиль Отправить личное сообщение для FlashRabbit Найти все сообщения от FlashRabbit
  № 8  
Ответить с цитированием
FlashRabbit
 
Аватар для FlashRabbit

Регистрация: Jul 2009
Сообщений: 93
Цитата:
Есть разница, или это идентичные конструкции с разным синтаксисом?
Оператор 'as' при неудаче преобразования возвращает null, а приведение к типу выкидывает TypeError.

Старый 12.02.2010, 20:29
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 9  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,784
Одно из них не занимается конвертацией.

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

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

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


 


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


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