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

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

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Ну так а что вы хотите от скролла-то, если вы просто меняете размеры всего спрайта-оболочки этого скролла... Автоматом этого сделать нельзя, нет никаких волшебных scaleMode для вашего случая. Надо оверрайдить сеттер height и в нем программно перемещать элементы (кнопки) и перерисовывать, например, подложку и ползунок... Флеш-плеер не знает, какие элементы при изменении должны оставаться на месте, какие перемещаться, а какие изменяться в размерах.

А про sprite.stage.scaleMode естественно ошибочно считали. У каждого визуального объекта есть свойство stage которое ссылается на экземпляр класса Stage, если он добавлен на сцену (или в любой другой клип на ней)... Как уже было сказано, Stage всегда одна на всю флешку. Почитайте хелп, там это все описано.


Последний раз редактировалось Hidest; 03.03.2011 в 14:55.
Старый 03.03.2011, 14:55
proxiServer вне форума Посмотреть профиль Отправить личное сообщение для proxiServer Найти все сообщения от proxiServer
  № 12  
Ответить с цитированием
proxiServer
 
Аватар для proxiServer

Регистрация: Jun 2006
Сообщений: 400
Это мне понятно) мне нужно что бы все элементы просто оставались на своих местах, что бы я ресайз написал, который их по нужным местам расставит. так нафига геометрию то менять?) главный вопрос - как у клипа поменять scaleMode? это возможно вообще?

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Я бы как-то так делал:
Код AS3:
package ugo.view.abstract {
 
	import flash.display.Sprite;
	import flash.errors.IllegalOperationError;
 
	/**
	 * Спрайт с возможностью ресайза
	 * 
	 * @author gloomyBrain
	 */
	public class AbstractResizingSprite extends Sprite implements IResizeble {
 
		protected var _width:Number = 0;
		protected var _height:Number = 0;
 
		public function AbstractResizingSprite() {
 
			super();
 
			if ((this as Object).constructor as Class == AbstractResizingSprite) {
				throw new IllegalOperationError("Нельзя создать экземпляр абстрактного класса!");
			}
 
		}
 
		public function setSize(width:Number, height:Number):void {
 
			_width = (width < 0 || isNaN(width)) ? 0 : width;
			_height = (height < 0 || isNaN(height)) ? 0 : height;
 
			this.redraw();
		}
 
		protected function redraw():void {
			throw new IllegalOperationError("Метод должен быть переопределен!");
		}
 
		/**
		 * Ширина контейнера
		 */
		override public function get width():Number {
			return _width;
		}
 
		/**
		 * @private
		 */
		override public function set width(value:Number):void {
			this.setSize(value, _height);
		}
 
		/**
		 * Высота контейнера
		 */
		override public function get height():Number {
			return _height;
		}
 
		/**
		 * @private
		 */
		override public function set height(value:Number):void {
			this.setSize(_width, value);
		}
 
	}
 
}
__________________
...вселенская грусть

Старый 03.03.2011, 14:58
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 14  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Оххх... Вы когда собираетесь поменять высоту, у вас кнопка "стрелка вниз" не должна уйти вниз? А подложка, по которому ползунок бегает, не должна увеличиться в размерах?

Не хотите переопределять сеттеры, заведите себе метод setSize(width:int, height:int):void и расставляйте там уже все как надо, а height и width не трогайте.

UPD: Глум опередил

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

Регистрация: Jun 2006
Сообщений: 400
gloomyBrain, интересно) типа абстрактный класс своими силами?)

мужики, блин) я конечно не супер прогер, но подобные вещи понимаю!

Вы не на тот вопрос отвечаете) у одних клипов скейлМод такой, у других другой. ВОПРОС ПОЧЕМУ И КАК СДЕЛАТЬ ЧТО БЫ ВЕЗДЕ ОДИНАКОВО БЫЛО?


Последний раз редактировалось proxiServer; 03.03.2011 в 15:04.
Старый 03.03.2011, 15:08
Hidest вне форума Посмотреть профиль Отправить личное сообщение для Hidest Найти все сообщения от Hidest
  № 16  
Ответить с цитированием
Hidest
 
Аватар для Hidest

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Охх (2 раза)...

Хорошо, пойдет от противного... Как ведет ваш скролл понятно, при изменении height все тянется... Тогда опишите, какой клип у вас не будет тянутся при изменении его высоты??? Может у вас где-то просто стоит scale9grid и вы не видите визуально, что и он тянется точно так же, кроме углов???

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

Регистрация: Jun 2006
Сообщений: 400
Цитата:
Охх (2 раза)...
спасибо за терпение)
Цитата:
Тогда опишите, какой клип у вас не будет тянутся при изменении его высоты???
Вы хотите сказать, что все клипы будут изменять пропорции, если изменять их размер через widt,heigh?

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

Регистрация: Jun 2006
Адрес: Москва
Сообщений: 461
Ну а как иначе? ... Если поставить scale9grid, то углы не будут изменяться в размерах, боковые части будут меняться в одном направлении, а центральная часть - в обоих направлениях... Обычно делают это на подложках кнопок, окон и т.п., где может меняться размер, но размер загруглений не должен меняться... но все равно как ни крути - это растяжение клипа...

Поэтому вас и советовали либо заоверрайдить сеттеры, либо завести метод, меняющий размер вручную, либо же комбинацию первого и второго.

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

блогер
Регистрация: Mar 2007
Сообщений: 1,291
Записей в блоге: 5
Отправить сообщение для cleptoman с помощью ICQ
один раз задайте Stage сой scaleMode в главном контейнере по событию ADDED_TO_STAGE
один раз подпишитесь на событие RESIZE
и тасуйте свои мувики в обработчике как хотите до потери пульса )
__________________
http://cleptoman.free-lance.ru
achivements: дважды благословлен на воровство. осеяный благодатью

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

Регистрация: Jun 2006
Сообщений: 400
все понял) спасибо за объяснения!

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

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

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


 


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


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