Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как сохранить размеры содержимого клипа при его resizing'е ? (http://www.flasher.ru/forum/showthread.php?t=126442)

marat_sa 19.06.2009 10:12

Как вариант

Код AS3:

//запоминай первоначальный размер holder'a 
_defaultHolderWidth = holder.width;
 
//устанавливай его новый размер
holder.width = _newHolderWidth;
 
//компенсируй размеры детишек
for (var i:uint = 0; i < holder.numChildren; i++)
      holder.getChildAt(i).scaleX = _defaultHolderWidth / holder.width;


iCanary 19.06.2009 13:34

ВЕЛИКОЛЕПНОЕ РЕШЕНИЕ!

МАСШТАБНОЕ спасибо ))

etc 19.06.2009 13:44

Ужасное решение.

marat_sa 19.06.2009 13:57

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

P.S.: я просто дал человеку решение поставленной задачи :)

Felicast 19.06.2009 14:35

может я не правильно понял вопрос.
но я в таких случаях делаю override высоты и ширины холдера, и сам управляю поведением внутренностей.

etc 19.06.2009 14:43

А это уже оптимальный вариант.

iCanary 19.06.2009 14:52

что значит override? каков принцип?

Котяра 19.06.2009 15:04

Как-то так..
Код AS3:

package  
{
        import flash.display.Sprite;
 
        /**
        * @author k0t0vich
        */

        public class Holder extends Sprite
        {
                child:Sprite;
 
 
                public function Holder()
                {
                        super();
                        addChild(child);
                        child.x = 10;
                }
 
                override public function set width(w:int)
                {
                        // смещаем по ширине
                        var oldWidth = super.width;
                        var delta = w - oldWidth;
                        child.x += delta;
                }
 
        }
 
}


etc 19.06.2009 15:14

Цитата:

Сообщение от Котяра (Сообщение 829301)
Как-то так..
Код AS3:

package  
{
        import flash.display.Sprite;
 
        /**
        * @author k0t0vich
        */

        public class Holder extends Sprite
        {
                child:Sprite;
 
 
                public function Holder()
                {
                        super();
                        addChild(child);
                        child.x = 10;
                }
 
                override public function set width(w:int)
                {
                        // смещаем по ширине
                        var oldWidth = super.width;
                        var delta = w - oldWidth;
                        child.x += delta;
                }
 
        }
 
}


Типа это работает? :quiet:

marat_sa 19.06.2009 15:29

_etc же сказал как правильно сделать - не суй в holder того, что не меняет размеры.
В holder ложишь свои 4 колонки, меняешь размеры holder'а - колонки тоже тянутся.
"Сверху" на holder накладываешь свои картинки и при изменении размера holder просто синхронизируй их с координатами/положением колонок или величиной растяжения holder (на свой вкус).


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

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