Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   И все-таки как сделать кнопку (http://www.flasher.ru/forum/showthread.php?t=85939)

iNils 04.10.2006 15:31

Цитата:

Сообщение от shaltay
у меня такого нет.. у меня 2004 флэш. может, там нет такого?
а что с кнопкой?

Это и в mx было.

shaltay 04.10.2006 15:44

и можно и с кнопкой и с клипом такое вытворять? Или с кнопкой нельзя? Просто не могу нигде найти эту функцию. Правда у меня Флэш русифицирован, может как-то странно называется...

Juice_Green 04.10.2006 15:58

2 shaltay:
в хелпе же все расписано до нельзя хорошо:

формат такой
Код:

my_instance_btn.useHandCursor = true/false;
my_instance_movieclip.useHandCursor = true/false;


shaltay 04.10.2006 16:36

и куда это засовывать?....
Вы уж меня извините все, я AS вторую неделю изучаю.. Но вроде получается. Значит талант))

Хемуль 04.10.2006 17:05

2 shaltay:
Посмотрите моё последнее сообщение в этой теме:
http://flasher.ru/forum/showthread.php?t=85683&page=3

shaltay 04.10.2006 17:14

Спасибо Хемуль! Как раз то, что я искал уже 3 дня)))))). Только там все так сложно. Неужели проще не написать....

Хемуль 04.10.2006 17:48

2 shaltay:
Ну... Почему же сложно? Вы если что-то там сложным считаете, спрашивайте. Вот увидите, когда начнёте понимать каждую строчку кода, всё не будет казаться таким большим по размеру кода и сложным для общего восприятия.
И вы вообще учтите, что этот пример делался для динамического формирования кнопок выпадающего меню. Я не знаю, какие цели вы перед собой ставите в конечном итоге. Может вам и не нужен такой сложный код... Я просто дал ссылку, поскольку подумал, что вас интересуют проблемы, которые поднимались в той теме.
Вы спрашивайте, если что-то непонятно...

shaltay 04.10.2006 17:59

меня интересует пока только что-б было так, как я показал в своем файле (выше).
Но мне нужно и с динамическим формированием. Я попробую проанализировать весь код, модет что и пойму. Буду обращаться, обязательно)))

shaltay 04.10.2006 18:05

Хемуль, в таком случае может подскажите, можно ли сделать так, что-б при наведении на первую кнопку стрелка не менялась на рук, а уже при наведении на вторую менялась. И если можно, то как?
И если не сложно, может подредактируете мой файл..

Хемуль 04.10.2006 18:14

2 shaltay:
В том варианте, который предложил я, не так всё просто. По сути рука появляется, когда курсор наводится на мувиклип. На мувиклипы выпадающих кнопок рука не наводится. Мы попадание в них проверяем не событиями ихними. Но сделать можно, хоть и не очень красиво... Новый код будет иметь вид:
Код:

var buttonHeight:Number = 24;
var buttonCaption:String = "НАВОДИТЬ СЮДА"
var buttonX:Number = 100;
var buttonY:Number = 100;

var dropDowns:Array = new Array();
dropDowns.push("ПУНКТ 1");
dropDowns.push("ПУНКТ 2");
dropDowns.push("ПУНКТ 3");
var dropDownHeight:Number = 24;

var dropDownTextColor:Number = 0x000000;
var dropDownHoverTextColor:Number = 0xFF0000;

this.attachMovie("button", "button", this.getNextHighestDepth(), {_x:buttonX, _y:buttonY});
this.button.label.caption.text = buttonCaption;
this.button.useHandCursor = false;
setColor(this.button.label, dropDownTextColor);

function setColor(MC:MovieClip, colorToSet:Number)
{
        var newColor:Color = new Color(MC);
        newColor.setRGB(colorToSet);       
}

this.button.onRollOver = function()
{
        setColor(this.label, dropDownHoverTextColor);
        var dropDownsLength:Number = dropDowns.length;
        for (var index:Number = 0; index < dropDownsLength; index++)
        {
                var newDropDownName:String = "dropDown" + index;
                var dropDownClip:MovieClip = this.attachMovie("dropDown", newDropDownName, this.getNextHighestDepth(), {_x:0, _y:buttonHeight + index * dropDownHeight});
                setColor(dropDownClip.label, dropDownTextColor);
                dropDownClip.label.caption.text = dropDowns[index];
                dropDownClip.id = index;
        }
}

this.button.onRollOut = this.button.onReleaseOutside = function()
{
        setColor(this.label, dropDownTextColor);
        var dropDownsLength:Number = dropDowns.length;
        for (var index:Number = 0; index < dropDownsLength; index++)
        {
                var dropDownName:String = "dropDown" + index;
                this[dropDownName].removeMovieClip();
        }
}

this.button.onMouseMove = function()
{
        var dropDownsLength:Number = dropDowns.length;
        var onDropDownButton:Boolean = false;
        for (var index:Number = 0; index < dropDownsLength; index++)
        {
                var dropDownName:String = "dropDown" + index;
                var dropDownTextNewColor:Number;
                if (this[dropDownName].hitTest(this._parent._xmouse, this._parent._ymouse, true))
                {
                        dropDownTextNewColor = dropDownHoverTextColor;
                        onDropDownButton = true;
                }
                else
                {
                        dropDownTextNewColor = dropDownTextColor;
                }
                setColor(this[dropDownName].label, dropDownTextNewColor);
        }
        if (onDropDownButton)
        {
                this.useHandCursor = true;
        }
        else
        {
                this.useHandCursor = false;               
        }

}

this.button.onPress = function()
{
        var dropDownsLength:Number = dropDowns.length;
        for (var index:Number = 0; index < dropDownsLength; index++)
        {
                var dropDownName:String = "dropDown" + index;       
                if (this[dropDownName].hitTest(this._parent._xmouse, this._parent._ymouse, true))
                {
                        trace("Pressed: " + dropDowns[this.id]);
                }
        }
}

Жирным выделил то, что добавилось.


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

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