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

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

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

Регистрация: Jan 2007
Сообщений: 76
По умолчанию Событие типа "размеры изменились" у MovieClip

В мануалах ничего такого не нашел, скорее всего такого и нет, но все же...
Есть ли у класса DisplayObject и у мувиклипа в частности какое-нибудь событие, которое автоматически срабатывает при изменении его размеров (не Event.RESIZE для stage, он срабатывает только когда все окно меняет размер)?

То есть например есть текстовое поле в мувике, добавили туда текст - высота увеличилась, можно ли это как-то отловить, не дисптча свои события?

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

Регистрация: Jun 2007
Сообщений: 374
Нет такого события. Перепишите width и height и испускайте событие вручную. Или обратите внимание на UIComponent.

Старый 09.05.2009, 18:45
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 3  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Если не для текста, то унаследуйтесь от требуемого класса и пропишите новые сеттеры на scaleX, scaleY, width, height, которые бы выстреливали требуемое событие. Хотя это не совсем верный подход.
__________________
Дело не в тебе

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
Код AS3:
import flash.display.Sprite;
import flash.events.Event;
 
public class ExtendedSprite extends Sprite
{
     public function ExtendedSprite()
     {
           super();
     }
 
     override public function set width(w:Number):void
     {
           super.width=w;
           dispatchEvent(new Event(Event.RESIZE));
     }
 
     override public function set height(h:Number):void
     {
           super.height=h;
           dispatchEvent(new Event(Event.RESIZE));
     }
}

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

блогер
Регистрация: Jun 2005
Адрес: Toronto
Сообщений: 6,600
Записей в блоге: 17
Ну и геттер бы надо переписать, ибо ширину он тогда будет возвращать не у супера.

Старый 11.05.2009, 13:12
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
В сеттерах ещё и проверять надо текущее значение, чтобы не слать в холостую события. Более того, переопределение сеттеров не поможет отлову изменения размеров детей.

Старый 11.05.2009, 20:50
Онтожка вне форума Посмотреть профиль Отправить личное сообщение для Онтожка Найти все сообщения от Онтожка
  № 7  
Ответить с цитированием
Онтожка

Регистрация: Jan 2007
Сообщений: 76
OK, всем спасибо. Буду юзать собственные события, не так уж это трудно, просто хотелось узнать, существует ли более красивый способ...

Старый 12.05.2009, 01:23
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 8  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Цитата:
Более того, переопределение сеттеров не поможет отлову изменения размеров детей.
Да, я об этом даже не подумал, когда предложил. Это все рушит С другой стороны, если дети тоже будут кастомным классом, то нужно просто диспатчить событие ресайза и подписаться на него родителем
__________________
Дело не в тебе

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

Регистрация: Jun 2007
Сообщений: 374
Поэтому я всегда использую UIComponent Оно всегда испускает нужные события + у него есть событие ресайза

Старый 12.05.2009, 03:05
AL.exe вне форума Посмотреть профиль Отправить личное сообщение для AL.exe Посетить домашнюю страницу AL.exe Найти все сообщения от AL.exe
  № 10  
Ответить с цитированием
AL.exe
 
Аватар для AL.exe

Регистрация: Jan 2004
Адрес: Net
Сообщений: 1,049
Отправить сообщение для AL.exe с помощью ICQ
Зато UIComponent не дружит со scale9grid внутри контейнера или у меня руки кривые
__________________
Дело не в тебе

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

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

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


 


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


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