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

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

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

Регистрация: Apr 2009
Сообщений: 167
Записей в блоге: 1
По умолчанию как использовать метод класса?

Есть у меня фла файл с мувиклипом, базовый класс мувиклипа = Base:
Код AS3:
package {
 
	import flash.display.MovieClip;
 
	public class Base extends MovieClip{
 
		public function Base():void{			
			var rt1 = new Rotation_class();			
		}
	}
}
есть другой класс Rotation_class:
Код AS3:
package {
 
	import flash.display.MovieClip;
 
	public class Rotation_class extends MovieClip{
 
		public function Rotation_class(){				  
		}
 
		public function rotate_me(){
		    this.rotation+=10;
		}
	}
}
символ из библиотеки уже добавлен на сцену и его instance name = my_rect
Как мне к нему применить функцию rotate_me() класса Rotation_class, не особо меняя структуру всего происходящего?
(тобишь я знаю, что если ф-цию rotate_me() дописать в класс Base, а патом в фла файле написать my_rect.rotate_me(); , то все будет работать, а мне самый интерес в том, что бы сделать свою библиотеку классов, а эту проблему я некак не могу осилить)

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Передать ссылку на экземпляр Base в конструкторе Rotation_Class
Base:
Код AS3:
package {
 
	import flash.display.MovieClip;
 
	public class Base extends MovieClip{
 
		public function Base():void{			
			var rt1 = new Rotation_class(this);			
		}
	}
}
Rotation_Class
Код AS3:
package {
 
	import flash.display.MovieClip;
 
	public class Rotation_class extends MovieClip{
 
	private var baseMovie:Base;
 
		public function Rotation_class(baseMovie:Base){
 
			this.baseMovie = baseMovie;
 
		}
 
		public function rotate_me(){
		    this.baseMovie.rotation+=10;
		}
	}
}
__________________
...вселенская грусть

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
базовый класс мувиклипа = Base:
Извините за дотошность, но базовый класс мувиклипа - это Object. Ваш Base стоит предпоследним в пищевой цепочке цепочке наследования библиотечного мувиклипа и не может считаться базовым.

По сути. Не стоит так заморачиваться и создавать _Отдельный_Класс_Реализующий_Поворот_На_Десять_Градусов_.

Традиционно: "некак" - это, извините, когда не получается сходить по-большому...
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 24.12.2009 в 00:33.
Старый 24.12.2009, 00:34
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 4  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Под базовым скорее всего подразумевался Base class из linkage properties. Хотя, возможно, и нет...

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от udaaff Посмотреть сообщение
Под базовым скорее всего подразумевался Base class из linkage properties. Хотя, возможно, и нет...
Дружище, udaaff! Это все понятно, но нужно как-то прививать любовь к точным определеням. И к русскому языку в частности.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Цитата:
Ваш Base стоит предпоследним
У меня вдруг ощущение, что я что-то не понимаю...
Может, в цепочке чего забыл, но не суть - Base стоит самым первым ведь (ну хорошо, если смотреть вглубь - то последним).
dimarik, если ты не ошибся - то кто тогда стоит первым? :O
Base -> MovieClip -> Sprite -> Shape -> DisplayObject -> EventDispatcher -> Object

Старый 24.12.2009, 01:13
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 7  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Цитата:
Сообщение от dimarik Посмотреть сообщение
Дружище, udaaff! Это все понятно, но нужно как-то прививать любовь к точным определеням. И к русскому языку в частности.
Ну да... согласен с вами, дружище dimarik. Главное — без фанатизма

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
У меня вдруг ощущение, что я что-то не понимаю...
Может, в цепочке чего забыл, но не суть - Base стоит самым первым ведь (ну хорошо, если смотреть вглубь - то последним).
dimarik, если ты не ошибся - то кто тогда стоит первым? :O
Base -> MovieClip -> Sprite -> Shape -> DisplayObject -> EventDispatcher -> Object
libraryClass -> Base -> MovieClip -> Sprite -> Shape -> DisplayObject -> EventDispatcher -> Object

Все правильно, Base предпоследний.

По-поводу что считать первым. Ты же не считаешь Адама последним в цепочке наследования человечества.

Sprite никогда не наследовался от Shape.
Sprite -> DisplayObjectContainer -> InteractiveObject -> DisplayObject -> EventDispatcher -> Object
__________________
Воспитан в TimeZero. Работаю в Mail.ru.


Последний раз редактировалось dimarik; 24.12.2009 в 01:24.
Старый 24.12.2009, 02:16
chabapok вне форума Посмотреть профиль Отправить личное сообщение для chabapok Найти все сообщения от chabapok
  № 9  
Ответить с цитированием
chabapok

Регистрация: Jul 2009
Сообщений: 240
Записей в блоге: 1
попробуйте:

дописываете в base.as
import Rotation_class.rotate_me;

и используете:
rotate_me();
тут я не уверен, что this укаже куда надо
----------------
Но есть способ 2.
Код AS3:
 
//в классе Base пишем так
 
var rt1_func:Function = rt1.rotate_me; //тут обратите внимание на большие
//и малые буквы
 
rt1_func.call(this);
Добавлено через 5 минут
стало быть и вот так должно получиться:
rt1.rotate_me.call(this)

или в вашем случае my_rect.rt1.rotate_me.call(this), но переменную rt1 все же прийдется сделать public

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
chabapok, Вам поршня менять нужно. А то прихватит.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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