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

botbot 13.09.2011 21:36

не меняется ширина и высота клипа
 
Создаю пустой клип, добавляю его на сцену, пытаюсь поменять размер - он не меняется. Вот код
Код AS3:

package 
{
        public class Main extends Sprite
        {
 
                public function Main():void
                {
 
                        if (stage) init();
                        else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
 
                private function init(e:Event = null):void
                {
 
                        var pane: MovieClip = new MovieClip();
                        addChild(pane);
                        trace('W: ' + pane.width)// Пишет 0
                        pane.width = 200;
                        trace('W: ' + pane.width)// Снова пишет 0 !!!
                }
        }
 
}

В общем почему так происходит и как клипу размер задать?

Wolsh 13.09.2011 21:41

а с чего он должен меняться-то? он же пустой.

botbot 13.09.2011 21:49

ну потому что там к нему сбоку должен прилипнуть другой клип, растянувшись по высоте первого пустого, а потом первый пустой заполняется дочерними элементами. Выходит, если клип пустой то размер у него всегда нулевой? И расширить в виде пустого холста никак?

TanaTiX 13.09.2011 21:56

Да. Никак.

Wolsh 13.09.2011 21:57

Ну это же логично))) Какие могут быть размеры и форма у Пустоты?
Когда ы контейнере есть какое-то содержимое, тогда у него есть размер в соответствии с этим содержимым.
Если очень хочется задать какие-то размеры, но оставить "пустым", можно закрасить его прозрачной заливкой.
Код AS3:

private function init(e:Event = null):void 
{
    var pane: MovieClip = new MovieClip();
    addChild(pane);
    trace('W: ' + pane.width)// Пишет 0
    pane.graphics.beginFill(0x000000, 0);
    pane.graphics.drawRect(0, 0, 200, 100);
    trace('W: ' + pane.width)// Пишет 200
}



dimarik 13.09.2011 23:23

он же пустой [x]. Как всегда. Ничто не ново под луной.

botbot 14.09.2011 15:05

Цитата:

Сообщение от Wolsh (Сообщение 1031204)
Ну это же логично))) Какие могут быть размеры и форма у Пустоты?
Когда ы контейнере есть какое-то содержимое, тогда у него есть размер в соответствии с этим содержимым.
Если очень хочется задать какие-то размеры, но оставить "пустым", можно закрасить его прозрачной заливкой.
Код AS3:

private function init(e:Event = null):void 
{
    var pane: MovieClip = new MovieClip();
    addChild(pane);
    trace('W: ' + pane.width)// Пишет 0
    pane.graphics.beginFill(0x000000, 0);
    pane.graphics.drawRect(0, 0, 200, 100);
    trace('W: ' + pane.width)// Пишет 200
}



Спасибо, учту на будущее.
Вообще я понял, что я делал не так. Я думал размер клипа это размер холста, на котором можно рисовать. Но выходит, размер определяется границами дочерних элементов или графикой на этом клипе и меняется сам при добавлении новых элементов (и отрисовке графики, я надеюсь). И при изменении размеров самого клипа всё содержимое тоже масштабируется, а не обрезается/добавляется пустое место. Странная система, надеюсь с ней не возникает проблем. Ну да ладно, хоть понял как с ней работать.

TanaTiX 14.09.2011 15:14

Ничего странного. Если необходимо обрезать - используйте маски.

botbot 14.09.2011 15:32

Маски не то, scrollRect вместо них есть у клипа. Уже пользую. Удобно, как раз видимо замена холста.

dimarik 15.09.2011 10:05

Цитата:

Сообщение от botbot (Сообщение 1031421)
Маски не то, scrollRect вместо них есть у клипа. Уже пользую. Удобно, как раз видимо замена холста.

Маска не обязательно будет прямоугольной. Замены холста нет, т.к. нет самого понятия холста. Вы что-то придумываете.


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

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