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

Kolan 23.09.2009 16:46

Существует ли контейнер, который умет переносить детей на новую строку?
 
Здравствуйте!

Существует ли стандартный контейнер, который бы умел при сжатии переносить своих детей на новую строку растягиваясь при этом по вертикали (ну и наоборот при растяжении)?

Пример сабжа — плагин Яндекс.Фоток, который позволяет загружать сразу несколько картинок http://fotki.yandex.ru/massupload

CrazyFlasher 23.09.2009 16:56

для флэша, например, могу посоветовать
http://developer.yahoo.com/flash/astra-flash/
Цитата:

HBoxPane, VBoxPane, FlowPane, TilePane and BorderPane are a set of containers that position and resize their children using several different layout modes. These components are built with the Layout Utility in the Astra Utilities library.

Kolan 24.09.2009 10:37

Есть ли стандартный?

Я использую haXe и не знаю как втащить туда компоненты, на которые вы ссылаетесь.

Alex Lexcuk 24.09.2009 11:41

Цитата:

Сообщение от Kolan (Сообщение 853061)
Есть ли стандартный?

Я использую haXe и не знаю как втащить туда компоненты, на которые вы ссылаетесь.

Парадоксальное заявление... что-бы в haxe использовать что-либо, надо иметь лишь флешку, которая это использует, скачайте флешку с демками этих компонентов, а дальше ищите пример использования haxe команды, как-то так
Код:

haxe --gen-hx-classes свф_с_компонентами.swf
потом появится папка с внешними классами и методами hxclasses и можно компилить проект
Код:

haxe -main Main -swf-lib свф_с_компонентами.swf -cp hxclasses -swf Main.swf -swf-version 10

Kolan 24.09.2009 13:16

Благодарю, Алекс, за подсказку.

Правда я поленился разбираться с готовым софтом и написал нужный компонент сам. Вот основной фрагмент кода, который и делает перескакивание.

Код AS3:

        /*rearrangeMovieClips must be called manually.*/
        function rearrangeMovieClips() {
                var x: Float = leftMargin;
                var y: Float = topMargin;
 
                /* This component supports unequal clips, so it is nessesary to
                * count line height.*/

                var lineHeight: Float = 0;
 
                for (i in 0..._clips.length) {                       
                        var clip: MovieClip = _clips[i];
 
                        /* The only aim of the component is to set clip x and y correctly.*/
                        clip.x = x;
                        clip.y = y;
 
                        if (clip.height > lineHeight) {
                                lineHeight = clip.height;
                        }
 
                        /* Calc new x.*/
                        x = x + clip.width + horizontalGap;
 
                        /* Process linebrak.*/                                               
                        if (i != _clips.length - 1) {                               
                                if (x + _clips[i + 1].width > wOwn) {                                       
                                        x = leftMargin;
                                        y = y + lineHeight + verticalGap;
                                }
                        }
                }
        }



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

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