Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   ComboBox: изменение цвета текста на roll over (Flash CS3) (http://www.flasher.ru/forum/showthread.php?t=112853)

CrazyFlasher 10.06.2008 13:39

ComboBox: изменение цвета текста на roll over (Flash CS3)
 
Собственно сабж...запарился с этим компонентом в CS3...так же как во флексе не получается =) Есть варианты?

DarkChris 30.01.2009 17:26

ну с этим не сложно :)
Код AS3:

public class MyRender extends CellRenderer {
                private var tfOver:TextFormat;
                private var tfOut:TextFormat;
                public function MyRender () {
 
                        tfOver=new TextFormat("Arial",11,0xFFFFFF);
                        tfOver.color=0xFFFFFF;
 
                        tfOut =new TextFormat("Arial",11,0xFFFFFF);
                        tfOut.color=0x171796;
 
                        addEventListener(MouseEvent.ROLL_OVER, onOver);
                        addEventListener(MouseEvent.ROLL_OUT, onOut);
 
                        setStyle("textFormat", tfOut);
 
 
 
                }
 
                private function onOver(e:MouseEvent):void {
                        setStyle("textFormat",tfOver);
                }
 
                private function onOut(e:MouseEvent):void {
 
                          setStyle("textFormat", tfOut);
 
                }

потом для комбобокса прописываеш
к примеру есть box:ComboBox
Код AS3:

box.dropdown.setStyle('cellRenderer',MyRender);


s8000_1 30.01.2009 22:29

DarkChris, в Вашем случае будут косяки со StyleManager, я бы сделал так:
Код AS3:

package {
        import fl.controls.listClasses.CellRenderer;
        import flash.text.TextFormat;
        public class MyRender extends CellRenderer {
                private var _defaultStyles:Object = {overTextFormat: new TextFormat(null, null, 0xFF0000),
                                                upTextFormat: new TextFormat(null, null, 0x000000),
                                                downTextFormat: new TextFormat(null, null, 0x333333) }
                public function getStyleDefinition():Object { return mergeStyles(_defaultStyles, CellRenderer.getStyleDefinition(); }
                public function MyRender() {
                        super();
                }
                override protected function drawTextFormat():void {
                        super.drawTextFormat();
                        var fmt:TextFormat = getStyleValue(mouseState + "TextFormat") as TextFormat;
                        if (!fmt) return;
                        textField.setTextFormat(fmt);
                        textField.defaultTextFormat = fmt;
                }
        }       
}



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

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