Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   button mode cursor hand над TextField (http://www.flasher.ru/forum/showthread.php?t=133539)

Killer_13 08.12.2009 00:23

button mode cursor hand над TextField
 
Здравствуйте..
Пишу лейбл(название кнопки) с помощью TextField
но при наведении на TextField курсор не меняется, подскажите как поменять курсор при наведении на TextField.

спасибо.

Вот код как я делаю

Main.as
Код AS3:

package {
 
        import flash.display.*;
        import flash.events.*;
        import buttons;
 
        public class Main extends Sprite{
 
                public var cButt:Sprite = new Sprite();
 
                public function Main(){
 
                        this.addChild(cDrop);
                        cDrop.addChild(dro);
 
                        if(stage) init();
                                else addEventListener(Event.ADDED_TO_STAGE, init);
                }
 
                private function init(e:Event = null):void {
 
                        removeEventListener(Event.ADDED_TO_STAGE, init);
 
                        this.addChild(cButt);
                        cButt.buttonMode = true;
                          cButt.useHandCursor = true;
 
                        var btn1:buttons = new buttons("Back");
                                btn1.x = 10;
                                btn1.y = 320;
 
                                btn1.addEventListener(MouseEvent.MOUSE_DOWN, b.b_back);
 
                        var btn2:buttons = new buttons("Next");
                                btn2.x = 388;
                                btn2.y = 320;
                                btn2.addEventListener(MouseEvent.MOUSE_DOWN, b.b_next);
 
 
                        cButt.addChild(btn1);
                        cButt.addChild(btn2);
 
                }
        }
}

Buttons.as

Код AS3:

package{
 
        import flash.display.*;
        import flash.events.MouseEvent;
        import flash.geom.*;
        import flash.text.TextField;
 
        public class buttons extends Sprite {
 
                private var labelFld:TextField;
 
                public function buttons (labelText:String) {
 
                        labelFld = new TextField;
                        labelFld.selectable = false;
                        labelFld.textColor = 0xFFFFFF;
                        labelFld.width = 30;
                        labelFld.height = 18;
                        labelFld.x = 27;
                        labelFld.y = 2;
                        labelFld.text = labelText;
                        addChild(labelFld);
 
 
                        addEventListener(MouseEvent.ROLL_OVER, onOver);
                        addEventListener(MouseEvent.ROLL_OUT, onOut);
                        onOut(null);
                }
}
}


Dimax4d 08.12.2009 02:07

Код AS3:

cButt.mouseChildren = false;


Killer_13 08.12.2009 02:26

работает, но пропало свойство при наведении мышью, тоисть курсор рука появляется на всей области кнопки, но она например не меняет цвет при наведении, как это должно быть...

Dimax4d 08.12.2009 02:35

Можно создать для каждой кнопки отдельный контейнер и подписать его на события наведения мыши

Killer_13 08.12.2009 02:38

А по другому никак? У меня просто 3 кнопки будет, я их хотел всех в один контейнер загружать.
Все таки нужно еще создавать контейнеры для каждой кнопки отдельно, тогда должно работать?

Dimax4d 08.12.2009 02:43

Вообще говоря, у вас уже есть контейнер - это ваш
Код AS3:

public class buttons extends Sprite {

для него ставите
Код AS3:

super.buttonMode = true;
super.useHandCursor = true;
super.mouseChildren = false;

И экземпляры этого класса подписываете на события, прямо как у вас и есть сейчас

Код AS3:

package{
 
        import flash.display.*;
        import flash.events.MouseEvent;
        import flash.geom.*;
        import flash.text.TextField;
 
        public class buttons extends Sprite {
 
                private var labelFld:TextField;
 
                public function buttons (labelText:String) {
 
 
                        super.buttonMode = true;
                        super.useHandCursor = true;
                        super.mouseChildren = false;
 
                        labelFld = new TextField;
                        labelFld.selectable = false;
                        labelFld.textColor = 0xFFFFFF;
                        labelFld.width = 30;
                        labelFld.height = 18;
                        labelFld.x = 27;
                        labelFld.y = 2;
                        labelFld.text = labelText;
                        addChild(labelFld);
 
 
                        addEventListener(MouseEvent.ROLL_OVER, onOver);
                        addEventListener(MouseEvent.ROLL_OUT, onOut);
                        onOut(null);
                }
}
}


Killer_13 08.12.2009 03:00

Все работает!!! Ура!
Вопрос решен.
Тему можно закрывать.


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

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