Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   Инвертировать индексы элементов посредством VerticalLayout (http://www.flasher.ru/forum/showthread.php?t=182334)

incvizitor 19.07.2012 23:40

Инвертировать индексы элементов посредством VerticalLayout
 
Элементы налазять друг на друга (gap=-10), проблема в том что первый элемент получается ниже остальных, а надо наоборот. Написал небольшой класс который реверсает элементы, но почему то падает очень инофрмативный эксепшн:

Цитата:

Error: null
Вот код:

Код AS3:

package by.brovar.postmaker.ui {
import flash.display.DisplayObject;
 
import mx.core.ILayoutElement;
 
import spark.components.supportClasses.GroupBase;
import spark.layouts.VerticalLayout;
 
public class ReversedIndexVerticalLayout extends VerticalLayout{
 
    override public function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
        super.updateDisplayList(unscaledWidth, unscaledHeight);
        _reverseLayoutIndexOrder();
    }
 
    private function _reverseLayoutIndexOrder():void {
        var layoutTarget:GroupBase = target;
        var count:int = layoutTarget.numElements;
        var targetElementList:Vector.<ILayoutElement> = new Vector.<ILayoutElement>();
        for (var i:int = 0; i < count; i++) {
            targetElementList.push(layoutTarget.getElementAt(i));
        }
        for each(var targetElement:ILayoutElement in targetElementList) {
            layoutTarget.setChildIndex(targetElement as DisplayObject, layoutTarget.numElements);
        }
    }
}
}

Падает на строчке:

Код AS3:

layoutTarget.setChildIndex(targetElement as DisplayObject, layoutTarget.numElements);


Inet_PC 20.07.2012 23:36

Если Вы хотите, чтобы первый элемент был выше второго в списке отображения (если я Вас правильно понял), то Вам подойдет свойство depth.
Код AS3:

<s:VGroup gap="-10">
 
        <s:Button label="label" depth="3"/>
        <s:Button label="label" depth="2"/>
        <s:Button label="label" depth="1"/>
 
</s:VGroup>



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

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