Новый вопрос о сценарии действий - PullRequest
1 голос
/ 12 марта 2011

Я видел, как кто-то использовал метку в качестве ItemRenderer для DataGrid, код здесь. Я просто не понимаю 1) что означает «@» здесь: «данные. @ Цена» 2) какой тип «данных» и как я могу их использовать? Чтобы понять это, какое ключевое слово мне нужно искать?

package {
    import mx.controls.Label;
    import mx.controls.listClasses.*;

    public class PriceLabel extends Label {

        private const POSITIVE_COLOR:uint = 0x000000; // Black
        private const NEGATIVE_COLOR:uint = 0xFF0000; // Red

        override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void {
            super.updateDisplayList(unscaledWidth, unscaledHeight);

            /* Set the font color based on the item price. */
            setStyle("color", (parseFloat(data.@price) <= 0) ? NEGATIVE_COLOR : POSITIVE_COLOR);
        }
    }
}

Спасибо

1 Ответ

5 голосов
/ 12 марта 2011

По Справочник операторов Adobe :

Определяет атрибуты XML или Объект XMLList. Например, myXML. @ Id определяет атрибуты с именем id для myXML XML объект. Вы также можете использовать следующий синтаксис для доступа к атрибутам: myXML.attribute ("id"), myXML ["@ id"], и myXML. @ ["id"]. Синтаксис рекомендуется myXML. @ id. Чтобы вернуть Объект XMLList всех имен атрибутов, используйте @ *. Чтобы вернуть атрибут с имя, соответствующее ActionScript зарезервированное слово, используйте атрибут () метод вместо оператора @.

...