Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Валидация размеров в AsWing (http://www.flasher.ru/forum/showthread.php?t=151180)

expl 24.02.2011 00:29

Валидация размеров в AsWing
 
Доброго времени суток всем!
Сейчас руки дошли до AsWing, попытался разобраться, но не вышло

Проблема в следующем:

- при изменении текста кнопки на более короткий, раскладка автоматически НЕ ужимает кнопку
(только когда у контейнера validate() по-дёргаешь - кнопка принимает правильный размер)

- если менять размер кнопки - та же песня - кнопка изменяется, а её соседи не пододвигаются,
принудительно вызываешь validate() - размеры кнопки возвращаются в свои границы.

- и вообще: приходится validate() вручную вызывать даже после простого добавления кнопки.

Что я делаю не так? Или AsWing впринципе не может изменять раскладку автоматически?
(Флекс это точно умеет, но там всю голову сломаешь, пока разберёшся, как оно работает)
Код AS3:

package
{
        import flash.display.Sprite;
        import flash.display.StageAlign;
        import flash.display.StageScaleMode;
        import flash.events.Event;
        import flash.events.MouseEvent;
 
        import org.aswing.AsWingManager;
        import org.aswing.JButton;
        import org.aswing.JPanel;
 
        public class AsWingResearch extends Sprite
        {
                private var _container:JPanel;
 
                public function AsWingResearch()
                {
                        stage.scaleMode = StageScaleMode.NO_SCALE;
                        stage.align = StageAlign.TOP_LEFT;
 
                        AsWingManager.setRoot(this);
 
                        _container = new JPanel();
                        addChild(_container);
 
                        var button:JButton = new JButton("Click for change");
                        button.addEventListener(MouseEvent.CLICK, onChangeWidthClick);
                        _container.append(button);
 
                        _container.append(new JButton("Text"));
                        _container.append(new JButton("Text"));
                        _container.append(new JButton("Text"));
 
                        stage.addEventListener(Event.RESIZE, onStageResize);
                        onStageResize();
                }
 
                private function onStageResize(event:Event = null):void
                {
                        _container.setSizeWH(stage.stageWidth, stage.stageHeight);
                        _container.validate();// Если эту строчку НЕ написать, почему-то ничего не отображается
                }
 
                private function onChangeWidthClick(event:MouseEvent):void
                {
                        (event.currentTarget as JButton).setText("Short text");
                }
        }
}



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

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