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

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

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Что мешает оверрайдить методы спрайта унаследовавшись от него?
__________________
Кто к нам с чем для чего - тот у нас того от того.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код в студию?
__________________
Reality.getBounds(this);

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
Код AS3:
[Exclude(name="addChild",kind="method")]
[Exclude(name="addChildAt",kind="method")]
[Exclude(name="removeChild",kind="method")]
[Exclude(name="removeChildAt",kind="method")]
[Exclude(name="getChildAt",kind="method")]
[Exclude(name="getChildByName",kind="method")]
[Exclude(name="getChildIndex",kind="method")]
[Exclude(name="setChildIndex",kind="method")]
[Exclude(name="swapChildren",kind="method")]
[Exclude(name="swapChildrenAt",kind="method")]
[Exclude(name="contains",kind="method")]
 
public class Animation extends Sprite implements IAnimation {
  ...
  [Deprecated(message="метод запрещен")]
  public override function addChild(child:DisplayObject):DisplayObject {
    return null;
  }
  ...
}
вызвав, например, addChild, вы даже скомпилироваться не сможете
__________________
местонахождение

Старый 07.06.2013, 16:46
Final Hope вне форума Посмотреть профиль Найти все сообщения от Final Hope
  № 14  
Ответить с цитированием
Final Hope
Banned
[+5 04.06.13]
[+1 08.06.13]

Регистрация: May 2013
Сообщений: 52
Цитата:
Сообщение от Wolsh Посмотреть сообщение
любой идиот может запихать в него что угодно методом addChild().
Использовать стандартные методы - это не идиотизм. А вот если вы, как разработчик класса, не позаботились о подобных проблемах, то это уже ваша вина, а не того, кого вы назвали идиотом.
Код AS3:
package
{
	import flash.display.Bitmap;
	import flash.display.Sprite;
 
	public class MySuperSprite
	{
		private var _sprite:Sprite;
 
		public function MySuperSprite()
		{
			_sprite = new Sprite();
		}
 
		public function addImage( image:Bitmap ):void
		{
			// Красиво раскладываем картинки на спрайте.
		}
	}
}

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Цитата:
вы даже скомпилироваться не сможете
Возможно, если буду вызывать его у :Animation )) Но он так и остался типом Sprite, и если переменная будет спрайтом, компилятор скромно промолчит. А что будет в рантайме?
Нет, хочу Класс - закрытый контейнер.

Final Hope, а теперь добавьте свой суперспрайт в список отображения.
__________________
Reality.getBounds(this);

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
@Wolsh, метод запрещен, не пропустит компилятор его
__________________
местонахождение

Старый 07.06.2013, 16:55
Final Hope вне форума Посмотреть профиль Найти все сообщения от Final Hope
  № 17  
Ответить с цитированием
Final Hope
Banned
[+5 04.06.13]
[+1 08.06.13]

Регистрация: May 2013
Сообщений: 52
Цитата:
Сообщение от Wolsh Посмотреть сообщение
Final Hope, а теперь добавьте свой суперспрайт в список отображения.
Код AS3:
package
{
	import flash.display.Bitmap;
	import flash.display.DisplayObjectContainer;
	import flash.display.Sprite;
 
	public class MySuperSprite
	{
		private var _sprite:Sprite;
 
		public function MySuperSprite()
		{
			_sprite = new Sprite();
		}
 
		public function addImage( image:Bitmap ):void
		{
			// Красиво раскладываем картинки на спрайте.
		}
 
		public function addToContainer( container:DisplayObjectContainer ):void
		{
			container.addChild( _sprite );
		}
	}
}
Цитата:
var mss:MySuperSprite = new MySuperSprite();
mss.addToContainer( this );
Wolsh, что ещё у вас не получается? Удаление? Перемещение?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
var a:Sprite = new Animation();
a.addChild(b);
Компилятор, который это не пропустит, мне тоже не нужен.

Цитата:
Wolsh, что ещё у вас не получается?
ООП не получается. Вы сделали некий менеджер для спрайта, применив паттерн Фасад. Похвально, наверно, но речь то была о своем DisplayObject, а не мультиклассовых конструкциях для ограничения функциональности. Посмотрите на SimpleButton или TextField. Подумайте еще раз, о чем речь.
__________________
Reality.getBounds(this);

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

блогер
Регистрация: Oct 2010
Адрес: Киев
Сообщений: 1,678
Записей в блоге: 12
Отправить сообщение для Dukobpa3 с помощью Skype™
Код AS3:
		override public function addChild($do:DisplayObject):DisplayObject
		{
			if (!($do is IMyInterfaceForSprite)) return null;
 
			else return super.addChild($do);
		}
@СлаваRa, ох уж эти хирурги. Всё бы им отрезать. Вот выпейте таблеточку, само отвалится.
__________________
Кто к нам с чем для чего - тот у нас того от того.

Старый 07.06.2013, 17:07
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 20  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
И это самое близкое к теме решение, которое, к сожалению, во-первых будет постоянным источником ошибок, а во-вторых так и не дает желанную типизацию аргумента.
__________________
Reality.getBounds(this);

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

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

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


 


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


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