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

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

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

Регистрация: Sep 2010
Сообщений: 8
По умолчанию Как обратиться к символу из самого символа?

Создал символ, разместил его на сцене, присвоил имя (but_1) и поставл галочку экспорта для АС. При попытке запустить среда (CS5) виснет! В самом символе написан код (задачка - анимированная кнопка, необходимо ее анимацию запускать\останавливать из самой себя):
Код AS3:
import flash.display.MovieClip;
 
var t:Boolean; 
 
var but:MovieClip = new but_1; // < вот этот момент, подскажите
 
but.buttonMode=true; 
 
//далее идёт блок объявления слушателей для событий
 
    but.addEventListener(MouseEvent.MOUSE_OVER, rollover);
	but.addEventListener(MouseEvent.MOUSE_OUT, rollout);
	but.addEventListener(Event.ENTER_FRAME, enter_);
	but.addEventListener(MouseEvent.MOUSE_DOWN, click_);
 
	function click_(e:MouseEvent):void
	{
	//сюда пишем что будет происходить по клику 
	//trace("click");
	}
 
	function rollover(e:MouseEvent):void
	{
	t=true;
	}
 
	function rollout(e:MouseEvent):void
	{
	t=false;
	}
 
	function enter_(e:Event):void
{
	if (t == true){
	e.target.nextFrame();
	}
	else{e.target.prevFrame();}
}

Старый 27.09.2010, 18:46
andrew911 вне форума Посмотреть профиль Отправить личное сообщение для andrew911 Найти все сообщения от andrew911
  № 2  
Ответить с цитированием
andrew911

Регистрация: Mar 2007
Сообщений: 545
1 Что значит виснет, может просто ничего не отображается?

2 Если вы создали и разместили его на сцене, зачем создаете его еще раз
var but:MovieClip = new but_1; // < вот этот момент, подскажите
(правильнее new but_1());

Если это и есть создание, то тут нет его добавления на сцену.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Если вы наваяли это в кадрах самого клипа, то не удивительно, что у вас плеер виснет. Вы добавили клип на сцену, он тут же автоматом создал свою копию (не добавляя ее в дисплейлист), копия в свою очередь создала еще одну копию, ну и т.д.

Добавлено через 4 минуты
если собираетесь и дальше писать в кадрах...
Код AS3:
import flash.display.MovieClip;
 
var t:Boolean; 
 
buttonMode=true; 
 
//далее идёт блок объявления слушателей для событий
 
    addEventListener(MouseEvent.MOUSE_OVER, rollover);
    this.addEventListener(MouseEvent.MOUSE_OUT, rollout); //или так
    addEventListener(Event.ENTER_FRAME, enter_);
    addEventListener(MouseEvent.MOUSE_DOWN, click_);
 
    function click_(e:MouseEvent):void
    {
    //сюда пишем что будет происходить по клику 
    //trace("click");
    }
 
    function rollover(e:MouseEvent):void
    {
    t=true;
    }
 
    function rollout(e:MouseEvent):void
    {
    t=false;
    }
 
    function enter_(e:Event):void
{
    if (t) //переменная у вас и так булевская, зачем ее сравнивать с true?
    {
    e.currentTarget.nextFrame(); //или mouseChildren = false, тогда можете и target использовать
    }
    else{e.currentTarget.prevFrame();}


Последний раз редактировалось alatar; 27.09.2010 в 19:09.
Старый 26.10.2010, 18:53
Andriy вне форума Посмотреть профиль Отправить личное сообщение для Andriy Найти все сообщения от Andriy
  № 4  
Ответить с цитированием
Andriy

Регистрация: Sep 2010
Сообщений: 8
Большое спасибо!

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

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

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


 


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


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