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

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

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

Регистрация: Jul 2008
Сообщений: 23
По умолчанию Обращение к методам другого класса

Приветствую всех!
Тема, скорее всего поднималась не раз, но разобраться до сих пор не смог... К примеру, нужно сделать листальщик трубнейлов: тумбы и две кнопки(следующая, предыдущая).
К кнопке привязан класс:
Код:
package Scripts{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	public class myButton extends MovieClip{
		public function myButton(){
			addEventListener(MouseEvent.MOUSE_DOWN, MouseDownEvent);
		};
		
		private function MouseDownEvent(evt:MouseEvent):void{	
			trace ("Click");
		};
	};
};
У мувика с тумбами класс:
Код:
package Scripts{
	import flash.display.MovieClip;
	
	public class TrumbTrans extends MovieClip{
		public function TrumbTrans(){
			// Init
		};
		
		public function Next(){
			// Transition to text thrumbnail
		};
	};
};
Вопроса два:
1. Как организовать вызов функции TrumbTrans.Next() по нажатию кнопки?
2. Классы для работы с кнопками "следующая", "предыдущая" будут по сути одинаковые. Как можно разделить эти события?

Заранее спасибо!

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

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
1. Странный вопрос. Вызвать метод Next у экземпляра TrumbTrans.
2. Например, добавлять слушатель не в теле класса а к экземпляру.

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

Регистрация: Jul 2008
Сообщений: 23
1. Говорит 1061: Call to a possibly undefined method Next through a reference with static type Class.
2. К экземпляру это как?

Подскажите, как это по человечески делается? Может быть я в корне где-то не прав? Как в принципе выглядит событийная модель для классических приложений(форма с кнопками и прочими компонентами) во флеш ?


Последний раз редактировалось iNils; 25.07.2008 в 13:28.
Старый 25.07.2008, 13:29
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 4  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Andrei666, надо использовать кнопку , а не создавать несколько сообщений подряд.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 25.07.2008, 13:42
mre вне форума Посмотреть профиль Отправить личное сообщение для mre Посетить домашнюю страницу mre Найти все сообщения от mre
  № 5  
Ответить с цитированием
mre
 
Аватар для mre

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
> К экземпляру это как?
Что-нибудь знаете про ООП?

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

Регистрация: Jul 2008
Сообщений: 23
В общем понимаю.
То, что получилось:
Код:
package Scripts{
	import flash.display.MovieClip
	
	dynamic public class TrumbTrans extends MovieClip{
		public function TrumbTrans(){
		};
		
		public function Next(){
			trace("Next");
		}
	};
};
Код:
package Scripts{
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.MouseEvent;
	
	public class MyButton extends MovieClip{
		public var TR:TrumbTrans;
		
		public function MyButton(){
			TR = new TrumbTrans();
			addEventListener(MouseEvent.MOUSE_DOWN,MouseDown);
		};
		
		private function MouseDown(evt:MouseEvent):void{
			TR.Next();
		};
	}
}
В общем, так работает. НО!!!
Допустим, что при мувик с тумбами прорисован непосредственно и мне нужно переходить с кадра на кадр:
Цитата:
public function Next(){
gotoAndStop(2);
}
По идее, при инициализации ролика вместе с кнопкой и мувиком с тумбами должны создаваться соответствующие им экземпляры классов (иначе, как тогда работает кнопка). Соответственно мне нужно обратиться конкретно к тому экземпляру, который создался при инициализации. Как узнать его имя? Логично было бы, если это было бы Instance Name, это не так.

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

Регистрация: Jul 2007
Адрес: Москва
Сообщений: 996
Цитата:
> Логично было бы, если это было бы Instance Name, это не так.
Это так.

Не пробовали читать основы AS3?

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

Регистрация: Jul 2008
Сообщений: 23
Нельзя получить ссылку? Или слово ключевое? Не нашел...

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

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

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


 


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


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