Форум 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)

Felicast 19.06.2009 15:43

Цитата:

Сообщение от Котяра (Сообщение 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;
                }
 
        }
 
}


во-первых не нашел
Код AS3:

child = new Sprite();

или что-то в этом духе
во-вторых
Код AS3:

override public function set width(w:Number):void


etc 19.06.2009 15:46

Тогда уж
Код AS3:

public override function set width(value:Number):void


Felicast 19.06.2009 15:51

Цитата:

Сообщение от __etc (Сообщение 829309)
Тогда уж
Код AS3:

public override function set width(value:Number):void


а почему public раньше чем override? рекомендация?
просто по моему правельнее "переопределить публичную функцию", а не "публично переопределить функцию"

etc 19.06.2009 19:12

Felicast, это с точки зрения английского может и правильнее, а с точки зрения ActionScript все же уровень доступа идет везде первым, а уж потом не сильно важные модификаторы. Но это не рекомендация Adobe, у них как раз override вперед.

Котяра 19.06.2009 19:38

Спросили
Цитата:

что значит override?
Я написал : " как-то так" и не проверял работоспособность)
Причём я совсем и не уверен в работоспособности)))))

iCanary 20.06.2009 06:25

2 marat_sa

именно так и сделал изначально, так и закончил ) действительно самое оптимальное решение.


http://www.verstka.nocturneart.ru/v3/

etc 20.06.2009 14:51

Цитата:

Сообщение от iCanary (Сообщение 829439)
действительно самое оптимальное решение.

Нет, это самое ужасное решение, которое только можно было придумать.

iCanary 20.06.2009 15:37

__etc

ну что за дела )) ты бы хоть реально показал КАК надо делать.. просто ЭТОТ варинт мне в данном случае показался наиболее быстрым и оптимизированным

Felicast 20.06.2009 15:52

вам же товарищ Котяра показал. с небольшими правками оформления логика должна быть понятна
Код AS3:

public class Holder extends Sprite
{
        private var _width:Number;
        public function Holder()
        {
                //инициализируете
        }
 
        override public function set width(value:Number):void
        {
                _width = value;
                //пересчитываем размеры детей
        }
 
        override public function get width():Number
        {
                return _width;
        }
}

и ни каких scaleX


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

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