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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 16.02.2012, 01:27
lovik вне форума Посмотреть профиль Отправить личное сообщение для lovik Найти все сообщения от lovik
  № 1  
Ответить с цитированием
lovik
[+1 03.01.12]
[++1 03.01.12]

Регистрация: Dec 2011
Сообщений: 29
По умолчанию Как Правильно обратиться к мувиклипу на сцене

Доброго дня суток
Столкнулся с такой проблемой, На основной сцене есть мувиклип.
В конце анимации появляется кнопка.
Вопрос Как с основной сцены обратится к этой кнопке ?? ибо на мои попытки он отвечает матом. ) а пытаю я, следующим образом
Код AS3:
mc_1.Btn_1
mc_1 лежит на основной сцене, основная сцена 1 кадр, в mc_1-70

Старый 16.02.2012, 01:47
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 2  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
1) Пишите код в классах, если пишите не в них (так намного удобнее и лучше, поверьте)
2) Чтобы матершины на ваши попытки не было) нужно обращаться к кнопке, только тогда когда она появиться, а именно в конце анимации, как это сделать решайте сами, можно поставить условие

Старый 16.02.2012, 10:06
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 3  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Цитата:
Сообщение от lovik Посмотреть сообщение
Вопрос Как с основной сцены обратится к этой кнопке ?? ибо на мои попытки он отвечает матом. )
Цитата:
Сообщение от ЗлОй ПрОграММер Посмотреть сообщение
1)нужно обращаться к кнопке, только тогда когда она появиться
А если кнопку добавить на сцену с самого начала клипа, но сделать её прозрачность равной нулю?
Затем в нужном кадре увеличить до 100%. Память будет занимать, конечно, но, думаю, не критично.
__________________
Лучше спросить и выставить себя дураком на пять минут, чем не спросить и остаться дураком на всю жизнь.

Старый 16.02.2012, 10:40
lovik вне форума Посмотреть профиль Отправить личное сообщение для lovik Найти все сообщения от lovik
  № 4  
Ответить с цитированием
lovik
[+1 03.01.12]
[++1 03.01.12]

Регистрация: Dec 2011
Сообщений: 29
Перенес я все это в классы.
Но почему то не хочет срабатывать лисенер и вызывать функцию, выглядит это примерно так
Код AS3:
package 
{
 
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
 
	public class myclass extends MovieClip
	{
 
 
		public function myclass()
		{
 
			menu_bar.btn_1.addEventListener(MouseEvent.MOUSE_OVER, anim_play);
			menu_bar.btn_1.addEventListener(MouseEvent.MOUSE_OUT, anim_play);
 
			function anim_play (e:MouseEvent):void
			{
				trace(e);
				menu_bar.btn_mc.play();
			}

Старый 16.02.2012, 12:30
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 5  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
в классе тоже придётся обращаться к кнопке когда она появиться

adobe flash у меня сейчас не установлен так что за правильность ручаться не могу, не проверял, но примерно так должно быть
Код AS3:
mc_1.addEventListener(Event.ENTER_FRAME, enterFrame);
private function enterFrame (e: Event):void
{
	if (mc_1.currentFrame == mc_1.totalFrames)
        {
            mc_1.btn_1.addEventListener(MouseEvent.MOUSE_OVER, anim_play); //если кнопка лежит в мувиклипе mc_1
	    mc_1.btn_1.play();
        }
}
 
private function anim_play (e:MouseEvent):void
{
	trace(e);
	mc_1.btn_1.play();
}
Цитата:
А если кнопку добавить на сцену с самого начала клипа, но сделать её прозрачность равной нулю?
Затем в нужном кадре увеличить до 100%. Память будет занимать, конечно, но, думаю, не критично.
Можно и так но лучше кнопку добавлять в самом классе
Код AS3:
addChild(...);
как только mc1 достигнет последнего кадра
Код AS3:
if (mc_1.currentFrame == mc_1.totalFrames) ...


Последний раз редактировалось ЗлОй ПрОграММер; 16.02.2012 в 13:39.
Старый 16.02.2012, 12:34
lovik вне форума Посмотреть профиль Отправить личное сообщение для lovik Найти все сообщения от lovik
  № 6  
Ответить с цитированием
lovik
[+1 03.01.12]
[++1 03.01.12]

Регистрация: Dec 2011
Сообщений: 29
Спс огромный.
Я в АС дуб бубом ((( .
Подскажите плиз Как правильно сделать проверку на какую кнопку навел мышкой ? чтоб не плодить 150 функций.

Старый 16.02.2012, 13:38
ЗлОй ПрОграММер вне форума Посмотреть профиль Отправить личное сообщение для ЗлОй ПрОграММер Найти все сообщения от ЗлОй ПрОграММер
  № 7  
Ответить с цитированием
ЗлОй ПрОграММер

Регистрация: Nov 2010
Сообщений: 434
каждой кнопке задавайте имя name = "button1"; и повесьте слушатель на каждую кнопку
потом в обработчике события можно узнать имя кнопки e.target.name
кстати можно и так анимацию кнопки запустить e.target.play();


Последний раз редактировалось ЗлОй ПрОграММер; 16.02.2012 в 13:40.
Старый 16.02.2012, 13:49
lovik вне форума Посмотреть профиль Отправить личное сообщение для lovik Найти все сообщения от lovik
  № 8  
Ответить с цитированием
lovik
[+1 03.01.12]
[++1 03.01.12]

Регистрация: Dec 2011
Сообщений: 29
О великий гурру ))) Бью челом и низко кланяюсь ))

Старый 16.02.2012, 14:13
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 9  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Код AS3:
 
const _buttonOne:SimpleButton = new SimpleButton();
const _buttonTwo:SimpleButton = new SimpleButton();
 
super.addChild(this._buttonOne);
super.addChild(this._buttonTwo);
 
super.addEventListener(MouseEvent.CLICK, this.handler_click);
 
function handler_click(event:Event):void {
    switch (event.target) {
        case this._buttonOne:
            // do button one action
            break;
 
        case this._buttonTwo:
            // do button two action
            break;
    }
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Можно switch-case реализовать побыстрее (правда, к теме это уже мало относится):

Код AS3:
const _buttonOne:SimpleButton = new SimpleButton();
const _buttonTwo:SimpleButton = new SimpleButton();
const _handlers:Dictionary = new Dictionary();
 
super.addChild(this._buttonOne);
super.addChild(this._buttonTwo);
 
_handlers[this._buttonOne] = this.handler_buttonOne;
_handlers[this._buttonTwo] = this.handler_buttonTwo;
 
super.addEventListener(MouseEvent.CLICK, this.handler_click);
 
function handler_click(event:Event):void {
    if (event.target in this._handlers) (this._handlers[event.target] as Function).call(null);
}
__________________
...вселенская грусть

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

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

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


 


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


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