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

Fleaxa 18.11.2008 16:13

Создание и редактирование стандартных компонент
 
Добрый день.
Начал осваивать применение стандартных компонент под третий экшн и столкнулся с рядом проблем:
Первая проблема:
При создании интерфеса мне нужно использовать один и тот же компонент (допустим CheckBox). Но у него должно быть три разных внешних вида (допустим тумблер, кнопка с загорающейся лампочкой и классический вид). В хелпе я прочитал, что применения для редактирования стандартных команд экшена очень затормозят работу и их не рекомендуют использовать. Создатели рекомендуют на прямую рисовать внешний вид. Но тогда я сталкиваюсь с проблемой, что в один документ экшена нельзя помещать два разных обьекта с одним классом. Хотелось бы услышать ваши рекомендации.
Проблема вторая:
Не могу найти для Слайдела команды для изменения размера ползунка. Форму ему можно придать любую. А вот почему-то размер все время один и тот же... Плюс, как аказалось в стандартной компоненте экшена не предусмотрено изменение цвета справа и слева ползунка. Кто-нибудь знает как это сделать?

Заранее спасибо. :rolleyes:

silin 18.11.2008 17:33

установка скинов через setStyle вполне решает первую задачу, чем оно "затормозит работу" не ясно
можно, канеш, попытаться клонировать компонент, с тем чтобы он использовал свои(другие) ресурсы, но не думаю, что это сильно ускорит работу..:)

по слайдеру: можно использовать наследника Slider, в котором принудительно установить размеры (или что-там еще надо) для thumb и track - кривое решение, но ничего другого не вижу, разве что написать свой..

Fleaxa 19.11.2008 18:04

Спасибо за подсказку. Только наткнулся на очередную проблемку.
при попытке установить принудительные размеры флешь плюется и требует определить клас которому устанавливается размер (все имаги прописаны как классы).
А куда ссылаться на них фиг знает......

silin 19.11.2008 20:47

у Slider есть protected свойства thumb и track
извне изменить их нельзя, но в классе наследующем от Slider можно
Код AS3:

var slider:MySlider = new MySlider();
addChild(slider);

Код AS3:

package  
{
        import fl.controls.Slider;
 
        public class MySlider extends Slider
        {
                public function MySlider()
                {
                        thumb.width = 60;
                        track.height = 20;
                }
        }
}


Fleaxa 21.11.2008 13:55

О-о-о-о... Спасибки... )))
То, что нужно.

Добавлено через 3 часа 35 минут
Нехочу показаться блондинкой, но именно таким сейчас себя и чувствую.
:wacko:
Попытался разобраться с setStyle, почитал хелп, полазил по форуму, по нету. Как применять ее для текста понятно. Но как она применяется для замены скина, не очень.
Может кто-то сможет подкинуть пример кода для моего случая.
Мне нужно взять любой компонент и прописать ему новый клас, который будет наследоваться от старого. А в новом классе уже прописывать скины для компоненты.

silin 21.11.2008 20:37

Код AS3:

cb.setStyle("upIcon", CheckBox_upIcon_copy);//CheckBox_upIcon_copy - класс библиотечного символа

и так тоже:
Код AS3:

var myIcon:Shape = new Shape();
myIcon.graphics.beginFill(0xFF0000);
myIcon.graphics.drawCircle(5, 5, 5);
cb.setStyle("upIcon", myIcon);

в классе наследнике
Код AS3:

public class MyCheckBox extends CheckBox
{
        public function MyCheckBox()
        {
                setStyle("upIcon", CheckBox_upIcon_copy);
        }
}


s8000_1 21.11.2008 20:53

Лучше setStyle не использовать, могут возникнуть косяки со StyleManager

Код AS3:

public class MyCheckBox extends CheckBox
{
  private static var _defaultStyles:Object = {upIcon: CheckBox_upIcon_copy}
  public static function getStyleDefinition():Object { return mergeStyles(_defaultStyles, CheckBox.getStyleDefinition()); }
  public function MyCheckBox()
        {
 
        }
}


Fleaxa 26.11.2008 19:36

Спасибки вам. Рецепты очень помогли... Дальше все пошло как по маслу.


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

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