Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Как отслеживать изменения свойства? (http://www.flasher.ru/forum/showthread.php?t=140234)

Волгоградец 24.05.2010 14:50

Цитата:

Сообщение от orcpochta (Сообщение 910547)
watch вроде как удалили из AS3?

Ну да, я тут балуюсь - даю советы по Flex 1.

incvizitor 24.05.2010 15:10

Цитата:

отсюда я могу сделать вывод, что моя задача не выполнима кроме как вешать на таймер проверку свойства (в частности размеров)(((
Ну если сделать один глобальный таймер на который идёт проверка всех объектов жрать будет не так уж и много. Один же таймер всего лишь.

orcpochta 24.05.2010 15:11

+ сама проверка

некрасиво, но деваться некуда)))

gloomyBrain 24.05.2010 15:17

Цитата:

Повесить сеттеры - тоже не то, т.к. будут отслеживаться только изменения, произведенные вручную, например width = 10, а автоматические не будут (например, когда мы в спрайт будем добавлять какое-то содержимое, его размеры могут меняться - при этом сеттер не будет этого улавливать).
Мнет кажется ниболее правильным подход, при котором слушаются все события, могущие повлиять на изменение размеров объекта. В случае со Sprite'ом это
Цитата:

override addChild
override set width
override set height
Зачем изобретать велосипеды типа watch и Timer - загадка

Psycho Tiger 24.05.2010 15:18

Я бы не стал так делать. Скорее всего, при изменении размеров нужно будет сделать какие-то ещё действия в этом же стэке вызовов, вариант с таймерами не годится вовсе.
Если подумать, то у спрайта есть только 4 способа изменить ширину:
graphics, addChild, addChildAt, width. Переопределить 4 функции/сеттера и радоваться, это будет куда лучше, чем таймер. Это частность? Да, но суть одна.

Добавлено через 36 секунд
Ха, Глум опередил =) Ты ошибся в списке, кто может поменять размер - смотри мой =)

enepx 24.05.2010 15:19

Цитата:

Сообщение от orcpochta (Сообщение 910555)
width и height - это на самом деле функции))) геттеры и сеттеры

Спасибо, просвятили :boredom:

Цитата:

Сообщение от orcpochta (Сообщение 910555)
отсюда я могу сделать вывод, что моя задача не выполнима кроме как вешать на таймер проверку свойства (в частности размеров)(((

В частности размеров: я уже давно сделал свой класс UIElement, который наследуется от Sprite и перегружает в нем сеттеры и геттеры Sprite более корректно, чем Sprite (т.е. не растягивает их в зависимости от детей, все контролируется вручную). Поэтому у меня таких проблем нет.

orcpochta 24.05.2010 15:21

Цитата:

Сообщение от gloomyBrain (Сообщение 910564)
Мнет кажется ниболее правильным подход, при котором слушаются все события, могущие повлиять на изменение размеров объекта. В случае со Sprite'ом это

Зачем изобретать велосипеды типа watch и Timer - загадка

гы, а вы учитываете тот момент, что объекты в контейнере могут жить своей жизнью, менять свое содержание и расположение - меняя тем самым размеры контейнера. Как вы будете слушать такие ситуации?

Волгоградец 24.05.2010 15:38

Цитата:

Мнет кажется ниболее правильным подход, при котором слушаются все события, могущие повлиять на изменение размеров объекта.
Зачем изобретать велосипеды типа watch и Timer - загадка.
Думаешь ChangeWatcher.watch() как работает?

orcpochta 24.05.2010 15:42

Вот вам всем практическая задача, можете попробовать придумать ее теоретическое решение без проверки по таймеру)))

Задача: создать контейнер MovableArea для графического содержимого, позволяющий перетаскивать себя вместе со всем своим скарбом (содержимым) в пределах границ, которые определяются так:
1) если линейный размер (width или height) меньше линейного размера сцены, то по этому направлению (горизонтальному или вертикальному) контейнер может перемещаться в приделах сцены, не заходя за края;
2) если линейный размер больше соответствующего размера сцены, то контейнер может перемещаться не залазя внешними кромками внутрь сцены

Psycho Tiger 24.05.2010 15:44

Цитата:

В частности размеров: я уже давно сделал свой класс UIElement, который наследуется от Sprite и перегружает в нем сеттеры и геттеры Sprite более корректно, чем Sprite (т.е. не растягивает их в зависимости от детей, все контролируется вручную). Поэтому у меня таких проблем нет.
А это как? Задал явно ширину 100, и тогда сколько бы я детей не добавлял, всё будет масштабироваться чтобы показать всё полностью в ширину 100?


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

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