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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 24.05.2010, 15:48
enepx вне форума Посмотреть профиль Отправить личное сообщение для enepx Посетить домашнюю страницу enepx Найти все сообщения от enepx
  № 21  
Ответить с цитированием
enepx
 
Аватар для enepx

Регистрация: Aug 2006
Адрес: Мюнхен
Сообщений: 509
Отправить сообщение для enepx с помощью ICQ Отправить сообщение для enepx с помощью Yahoo Отправить сообщение для enepx с помощью Skype™
Цитата:
Сообщение от orcpochta Посмотреть сообщение
Задача: создать контейнер MovableArea для графического содержимого, позволяющий перетаскивать себя вместе со всем своим скарбом (содержимым) в пределах границ, которые определяются так:
1) если линейный размер (width или height) меньше линейного размера сцены, то по этому направлению (горизонтальному или вертикальному) контейнер может перемещаться в приделах сцены, не заходя за края;
2) если линейный размер больше соответствующего размера сцены, то контейнер может перемещаться не залазя внешними кромками внутрь сцены
Так может быть подписываться тут надо как раз на действия, т.е. перемещения, а не на масштабирования? А там уже getBounds(), globalToLocal() и localToGlobal() помогут.

Старый 24.05.2010, 15:55
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 22  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
да, не очень пример привел - в сторону уводит))) без задачи этой лучше
__________________
скриптограф

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
enepx, Ваш класс конечно классный, но проблема в том что в нашем мире есть очень много классов наследующих от Sprite. Если нам надо их контролить, каждый расширять?

Старый 24.05.2010, 16:11
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 24  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

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

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
orcpochta, Вас непонятно. У вас есть какая то конкретная задача? У конкретной задачи есть конкретная реализация. Скажите задачу - мы Вам скажем, что нужно сделать чтобы заработало. Зачем вы приводите абстрактные примеры, а получая абстрактное решение жалуетесь, что оно абстрактное?

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

Регистрация: Feb 2008
Сообщений: 890
Цитата:
Сообщение от iNils Посмотреть сообщение
Если есть возможность, то у детей можно также переопределить сеттеры для x,y и тем самым узнавать о движении.
а если дети со временем меняют свое содержание? графика там в них какая-нибудь отрисовывается и т.д.?))
__________________
скриптограф

Старый 24.05.2010, 16:36
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 27  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

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

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Прошу прощенья что опять про таймеры, но думаю самый простой вариант такой:

Код AS3:
import flash.display.DisplayObject;
import flash.events.Event;
import flash.events.TimerEvent;
import flash.utils.Timer;
public class resizeManager {
 
	private static var _items:Array = [];
	private var _timer:Timer;
 
	public function resizeManager():void {
                _timer=new Timer(100);
		_timer.addEventListener(TimerEvent.TIMER, _update);
                _timer.start();
	}
 
	private function _update(e:TimerEvent):void {
		for each(var item in _items) {
			if ((item.obj.width != item.width) || (item.obj.width != item.width)) {
				item.width = item.obj.width;
				item.height = item.obj.height;
				item.obj.dispatchEvent(Event.RESIZE);
			}
 
		}
	}
 
	public static function addItem(var obj:DisplayObject):void {
		_items.push( { "width":obj.width, "height":obj.height, "obj":obj } );
	}
}
Всё, обещаю про таймеры больше не писать

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Цитата:
Ха, Глум опередил =) Ты ошибся в списке, кто может поменять размер - смотри мой =)
Интересно, что тебе даст graphics? =)
Если отслеживать рисование - тогда надо делать свою обёртку. Или рисовать только в детях.
Про детей -
Код AS3:
package {
	import flash.display.DisplayObject;
	import flash.display.Sprite;
	import flash.events.Event;
 
	/**
	 * ...
	 * @author gloomyBrain
	 */
 
	public class ExtendedSprite extends Sprite {
 
		public function ExtendedSprite() {
 
			super();
 
		}
 
		private function change():void {
			this.dispatchEvent(new Event(Event.CHANGE));
		}
 
		override public function addChild(child:DisplayObject):DisplayObject {
			super.addChild(child);
			this.change();
			return child;
		}
 
		override public function getChildAt(index:int):DisplayObject {
			return super.getChildAt(index + 1);
		}
 
		override public function get width():Number {
			return super.width;
		}
 
		override public function set width(value:Number):void {
			super.width = value;
			this.change();
		}
 
		override public function get height():Number {
			return super.height;
		}
 
		override public function set height(value:Number):void {
			super.height = value;
			this.change();
		}
 
		override public function get x():Number {
			return super.x;
		}
 
		override public function set x(value:Number):void {
			super.x = value;
			this.change();
		}
 
		override public function get y():Number {
			return super.y;
		}
 
		override public function set y(value:Number):void {
			super.y = value;
			this.change();
		}
 
	}
 
}
И наследуемся от такой штуки вместо Sprite
__________________
...вселенская грусть


Последний раз редактировалось gloomyBrain; 24.05.2010 в 18:05.
Старый 24.05.2010, 17:37
Psycho Tiger вне форума Посмотреть профиль Отправить личное сообщение для Psycho Tiger Найти все сообщения от Psycho Tiger
  № 30  
Ответить с цитированием
Psycho Tiger
 
Аватар для Psycho Tiger

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,599
Записей в блоге: 17
Цитата:
Интересно, что тебе даст graphics? =)
Графиксом можно изменить ширину.
Но orcpochta верно заметил, детей тоже можно перемещать. Я бы сказал, что абсолютного решения нету - таковое в 90% будет избыточным. Лучше смотреть по ситуации, не встречал ещё ниразу проект, в котором бы мне понадобилось знать об изменении ширину, но не было бы достаточно элементарного переопределения сеттера.

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

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

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


 


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


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