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

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

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

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

Здравствуйте.
Хочу сделать невидимые ссылки.
Делаю так:
1. Прозрачный прямоугольник превращаю в символ (мувиклип, ставлю галочку 'Export for ActionScript').
2. В библиотеке захожу в мувиклип (двойной щелчок по нему), в первом фрейме мувиклипа прописываю
Код AS3:
import flash.events.MouseEvent;
 
this.addEventListener(MouseEvent.CLICK, clickAddNewCase);
function clickAddNewCase(e:MouseEvent):void{
		gotoAndStop(2);
}
3. Добавляю на главном таймлайне, на нужные фреймы эту кнопку.
4. Компилирую.
После компиляции кнопка есть, но при кли по ней ничего не происходит.

Подскажите, почему?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Потому что код в кадрах - зло.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

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

Регистрация: Nov 2010
Сообщений: 430
Цитата:
Сообщение от GBee Посмотреть сообщение
Потому что код в кадрах - зло.
Хорошо. Есть у меня в библиотеке мувиклип AddNewCase. Что дальше?
Создаю новый слой над всеми фреймами.
Пишу там:
Код AS3:
var link1:AddNewCase = new AddNewCase;
link1.addEventListener(MouseEvent.CLICK, clickAddNewCase);
function clickAddNewCase(e:MouseEvent):void{
		gotoAndStop(2);
}
Все равно кнопка не работает. Если добавлять на сцену кнопку (stage.addChild(link1); ), то кнопка появляется, но её нужно выравнивать по пикселям на каждом кадре, а в каждом кадре она находится в разных местах. Задача состоит, собственно, в том чтобы сделать несколько кнопок и разместить на нескольких картинках в нескольких кадрах.
Как это сделать, если не прописывать внутри самого мувиклипа?

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Сделать соответствующий класс. Прописать его в свойствах мувика. Инфы об этом более чем достаточно на этом форуме.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 15.06.2011, 16:58
Srednas вне форума Посмотреть профиль Отправить личное сообщение для Srednas Найти все сообщения от Srednas
  № 5  
Ответить с цитированием
Srednas

Регистрация: Nov 2010
Сообщений: 430
Цитата:
Сообщение от GBee Посмотреть сообщение
Сделать соответствующий класс. Прописать его в свойствах мувика. Инфы об этом более чем достаточно на этом форуме.
Сделал так:
Создал класс, указал класс для мувиклипа.

Код AS3:
package{
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
 
	public class AddNewCase extends flash.display.MovieClip {
 
			public function AddNewCase(){
					this.addEventListener(MouseEvent.CLICK, clickHandler);
					trace("AddNewCase");
			}
 
			private function clickHandler(e:MouseEvent):void{
					trace("Click AddNewCase");
					gotoAndPlay(2);
 
			}
 
	}
 
}
Но при клике появляются только проверочные надписи из трейса. Перехода на второй кадр не происходит. С чем это может быть связано?

Старый 16.06.2011, 16:01
zeksar вне форума Посмотреть профиль Отправить личное сообщение для zeksar Найти все сообщения от zeksar
  № 6  
Ответить с цитированием
zeksar

Регистрация: Jun 2011
Адрес: (0;0;0)-центр всего!
Сообщений: 1
ты хочешь вызвать функцию gotoAndPlay(2) для кнопки, а нужно вызывать для самого главного мувиклипа. Просто в классе кнопки создай ссылку на объект клавного класса самой флешки, и уже для нового объекта-ссылки применяй функцию gotoAndPlay(2)
что-то типа того:
в Main.as

my_button_class.next_kadr = this;

в my_button_class

public static var next_kadr:Main;

потом просто в функцию:

private function clickHandler(e:MouseEvent):void{
trace("Click AddNewCase");
next_kadr.gotoAndPlay(2);

}

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

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

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


 


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


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