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

chingachgoog 24.05.2007 19:46

программный переход по кадрам кнопки
 
где-то я пример видел, но не помню, как это делалось
(и можно ли вообще в 8-м плеере такое?)

Понятно, что "официально" такое невозможно, но "официально" невозможно и приаттачить кнопку из библиотеки - а такое на раз делается.

gotoAndStop не катит

BigDan 24.05.2007 21:09

почему бы не использовать заместь кнопки обычный мувик из 4 кадров?

chingachgoog 25.05.2007 11:48

Дело в самой возможности так сделать :)
Возможно я спутал к клипами-кнопками, но навряд-ли.

etc 25.05.2007 13:19

Покулыпался… Не нашел ничего, в общем-то.

chingachgoog 25.05.2007 13:28

Значит попутал что-то...
А может это на каком-нибудь древнем 5-м плеере выходило...

waleriy 25.05.2007 14:38

смотри! я делал нечто подобное как-то, создал мувики, в эти мувики, создал 3 кадра, в эти кадры вставил кнопки, ну и вот этот код, где что комментарии написал:
Код:

// массив имен кнопок
var btnNames:Array = new Array("btn1","btn2","btn3","btn4","btn5");
_global.currentButtonName = "";

// отжатие всех кнопок, кроме одной
function switchButton(btnName:String)
{
        for(var i=0;i<btnNames.length;i++)
        {
                if (btnNames[i] == btnName)
                        eval(_root.btnNames[i]).gotoAndStop(3);
                else
                        eval(_root.btnNames[i]).gotoAndStop(1);
        }
        _global.currentButtonName = btnName;
}

// навешивание обработчиков событий
for(var i=0;i<btnNames.length;i++)
{
        eval(_root.btnNames[i]).onPress          = function()
                { switchButton(this._name); };
               
        // имитация кнопки - наведение курсора мыши
        eval(_root.btnNames[i]).onRollOver = function()
                { if (_global.currentButtonName != this._name) this.gotoAndStop(2); };
       
        // имитация кнопки - отведение курсора мыши
        eval(_root.btnNames[i]).onRollOut  = function()
        {
                if (this._currentframe == 2)
                        if (_global.currentButtonName != this._name)
                                this.gotoAndStop(1);
                        else
                                this.gotoAndStop(3);
        };
}

попробуй, если что напиши, расскажу что к чему, кстати на форуме уже можно заливать файлы?

chingachgoog 25.05.2007 14:47

Наверное я не совсем ясно описал, что хочу.
Мне не нужна ИМИТАЦИЯ кнопки, а нужна именно кнопка и переход по ее состоянию.
А весь код выше можно заменить лейблами _up _down _over (получаем мувик-кнопку). :)

waleriy 25.05.2007 14:51

так! это есть кнока, вешай на них события и твоя проблема решена! Что не ясно?

etc 25.05.2007 14:53

walery, требуется переходит по кадрам обычной кнопки, а не делать свою на основе MovieClip.

chingachgoog 25.05.2007 14:54

Не ясно, как реализовывать переход по состоянию кнопки (кадрам) не вручную, а ПРОГРАММНО (т.е. мышь не на кнопке и т.п.).

Kikasso 25.05.2007 15:02

Может надо сказать mc.button=false, после чего кнопка станет клипом?

upd: ерунду сказал, не работает.

waleriy 25.05.2007 15:05

ну тогда я прям не знаю как помочь! а вообще такое реально? ведь у кнопки всего 4 состояния, UP, OVER, DOWN, HIT, и ты хочешь получить такого рода эффект, нажатия, отжатия, и т.д.?
для _etc! а вообще это возможно?

etc 25.05.2007 15:06

Не знаю, методов не нашел, в т.ч. недокументированных ASnative.

waleriy 25.05.2007 15:08

проще уже юзать мувик как кнопку, эффект примерно тот же самый! другого способа я пока не вижу!

Kikasso 25.05.2007 15:12

Я делал так: в библиотеке мувиклип с нужными кадрами (метками), на сцену кидаю парочку, одному говорю что он кнопка, другому что он клип. В таком варианте все работало.

waleriy 25.05.2007 15:25

Kikasso! а как же переход по кадрам кнопки, программным методом, ведь автор темы именно хочет осуществлять переход по кадрам кнопки!

Kikasso 25.05.2007 17:08

Я подозреваю, что это вообще невозможно.

Жень Шень 25.05.2007 20:38

Цитата:

Сообщение от waleriy
Kikasso! а как же переход по кадрам кнопки, программным методом, ведь автор темы именно хочет осуществлять переход по кадрам кнопки!

И автору тоже: кнопка (кстати и _root) особые клипу изначально. Так в кнопке не может происходить смена кадров во времени, а только от действий со стороны пользователя (это значит только ручками давить на мышку или клавишу!). Это прописная истина описана во многих книгах.

Я упомянул _root. Он ведет себя как мувиклип, но нельзя сделать с него дубликат, как с обычного клипа; невозможно работать сним как с кнопкой; _root не является частью другого клипа.
Аналогична и кнопка - специфический клип!!! :boredom:

chingachgoog 25.05.2007 20:51

Для Жень-Шеня.

Прописная истина, что аттачить кнопку из либы нельзя, тоже описана. Но кнопки аттачаться.
Я не спорю, вполне возможно, что и нельзя программно переходить, но вовсе не потому, что это "прописная истина".

OFF просьба проверить личку или посмотреть тему
http://flasher.ru/forum/showthread.php?t=96098


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

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