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

endgegner 20.06.2007 15:24

активная кнопка во флэш меню
 
вот хотел бы знать! не могу никак допереть!
как сделать так что бы в флэш меню при нажатии кнопки она оставалаь активной(в моем случае что бы на ней оставались красные пятна) пока не нажмешь другую кнопку в этом же флэш меню! какую надо добавить команду в акшин скрипт
вот пример моего меню в котором у меня не получается так сделатьhttp://inrap.info/slang/sait/m.swf

вот акшин на кнопке у меня в меню
Код:

on (rollOver)
{ gotoAndPlay("s1");
}

on (rollOut)
{gotoAndPlay("s2");
}
on (press)
{gotoAndPlay("s3");
}on (release) {
       
        getURL("pret.html", "main");

}

а вот пример меню где это получается нормально кнопка при нажатии становится активной(видно что именно в этом разделе находишся!) пока не будет нажата другая кнопка
http://inrap.info/slang/sait/m1.swf

ЧТО МНЕ НАДО ДОБАВИТЬ ЧТОБЫ В МОЕМ МЕНЮ КНОПКА ОСТАВАЛАСЬ АКТИВНОЙ(всмысле что бы поней видно было что она нажата) ДО НАЖАТИЯ НА ДРУГУЮ КНОПКУ, КАК В ПРИМЕРЕ ВЫШЕ?
ЗАРАНИЕ БАЛОДАРЮ!

BM Senya 20.06.2007 15:47

она наоборот становится не активной
может это тебе поможет
Код:

var OldMc:MovieClip;
function onMcRelease () {
        loadMovie (this.fileToLoad, "p");
        this.trace;
        delete this.onRelease;
        if (OldMc) {
                OldMc.trace;
                OldMc.onRelease = onMcRelease;
               
        }
        OldMc = this;
}

и советую не пиши код на кнопку пиши в кадр

endgegner 20.06.2007 16:16

не поможет! это сложновато для меня и я даже не знаю куда это вставить
мож какой то попроще вариант есть???!
Может кому то не в лом я выложу исходник со шрифтом и какой-нибудь умный доброжелательный человек сделает как мне бы хотелось! а я на примере уже пойму как!
снизу исходник и шрифт
http://inrap.info/slang/sait/src.zip

Tardos Mors 20.06.2007 16:30

Ссылки сказали, что доступ запрещен.
Ставь в кадр, прочитав комментарии:
Код:

// В этот массив кладешь ссылки на все кнопки
var buttons:Array = new Array(_root.b1, _root.b2, _root.b3);
var selected_button:MovieClip = null;
function select_button(button:MovieClip):Void
{
        if (selected_button != button)
        {
                selected_button = button;
                button.gotoAndStop("selected");
                for (var i:Number = 0; i < buttons.length; i++)
                {
                        if (buttons[i] != button)
                        {
                                buttons[i].gotoAndStop("not_selected");
                        }
                }
        }
}
// Назначаешь события всем кнопкам
b1.onRelease = function()
{
        select_button(this);
        getURL ("file_1.htm");
};
b2.onRelease = function()
{
        select_button(this);
        getURL ("file_2.htm");
};
b3.onRelease = function()
{
        select_button(this);
        getURL ("file_3.htm");
};


endgegner 20.06.2007 17:32

Так вроде бы это понятно! но не понятно как это все сделать если кнопки во флэш меню анимированые если есть мувики в с фрэймами в которых анимация для rollovera и rollout! Не могу понять как проложить путь что бы rollout и rollover работал!
например если у меня такой путь buttons_mc (instance a) - glavnay.mc(instance b ) - gl.btn

вот как мне правильно написать акшин в первый кадр чтобы например фрэймы для роловера и ролаут которые находятся в glavnay.mc (b) работали

я вот думал делал так но не работает! как и где мне правильно указать пути для роловера и ролаута что бы они работали
Код:

this.a.b.gl_btn.onRollOver = function ()
{
gotoAndPlay("s1");

};

this.a.b.gl_btn.onRollOut = function ()
{
gotoAndPlay("s2");

};

this.a.b.gl_btn.onRelease = function ()
{getURL("3.html" , "3")

};

я тут много наговорил не знаю понятно ли что я имел ввиду но по другому объяснить не получилось!

вот напримере исходник http://inrap.info/slang/sait/button.fla

В этом исходнике у меня все работает и ролаут и роловер! но мне пришлось ставить весь акшин в кадр в самом мувике в котором находится фрэймы с ролаутом и ролловером! А когда я ставил это все
в первый кадр основной сцены у меня не работала
если не трудно на нем объясните как правильно путь указывать для мувика де роловер и ролаут! напримере этого исходника!

Tardos Mors 20.06.2007 18:19

Цитата:

Сообщение от Ссылка
Forbidden
You don't have permission to access /slang/sait/button.fla on this server.

Additionally, a 404 Not Found error was encountered while trying to use an ErrorDocument to handle the request.
Apache/1.3.37 Server at www.inrap.info Port 80

Насчет ролловера:
Код:

this.a.b.gl_btn.onRollOut = function ()
{
  this.gotoAndPlay("s2");
};

Должно работать, если я правильно понял проблему.

endgegner 21.06.2007 10:08

Цитата:

Сообщение от Tardos Mors
Насчет ролловера:
Код:

this.a.b.gl_btn.onRollOut = function ()
{
  this.gotoAndPlay("s2");
};

Должно работать, если я правильно понял проблему.


to Tardos Mors
я перезалил на graffasc.mksat.net/button.fla

можешь сделать в этой исходнике пример как поставить и указать путь для роловера и т.д. для кнопки в первом кадре сцене! У меня в этом исходнике тоже тоже акшин в кадре но получилось только сделать так что бы работала всунуть акшин в тот же мувиклип где и сами фрэймы для роловера и ролаута! А хотелось бы что бы это все было на первом кадре основной сцены

Tardos Mors 21.06.2007 11:53

Исходник

endgegner 21.06.2007 15:04

Огромное тебе спасибо Tardos Mors
Теперь можно и занятся первоначальной проблемой мне как сделать так что бы кнопка оставалась выделеной при нажатии! Надеюсь там все получится!

Dimmi 09.08.2007 13:05

Почитал, и почти понял :) но у меня ничего не вышло когда начал писать экшн. Вобщем мне надо что бы кнопка была активна когда открыта страничка! Как это сделать? :)
Пробывал сделать так:
Код:

function setPlayButton(bt1){
        bt1.gotoAndPlay(60);
}

, не вышло :(
На каждой кнопке висит это:
Код:

on (rollOver) {
        gotoAndPlay("up");
}
on (rollOut) {
        gotoAndPlay("down");
}
on (release) {
        getURL("forum.htm");
}


Dimmi 09.08.2007 19:27

Я понял что то неправильно и я сделал вот этот код:
Код:

function checkCurPage(sPages){
if(sPage == "forum")
{
mcb4.gotoAndPlay("up");
}
else if(sPage == "index")
{
mcb1.gotoAndPlay("up");
}
else{
trace("current sPage is "+ sPage)
}
}

checkCurPage(page);

и все равно не работает :( помогите чем сможете

Wolsh 09.08.2007 20:40

Dimmi, в таких вопросах исходник нужен - никто не знает, что ты там в кнопках наваял. Тем более что up - это не ролловер, down - это не роллаут... Ну как такое понять? Если это стандартные метки, то должен быть _слэш, и никаких gotoAndPlay() не надо - всё автоматически переходит... Короче давай исходник.

opportunity 11.08.2007 07:18

на данный момент знаю три способа.
вот, я сделал для тебя, посмотри, кажется самый легкий (1) его и выложил.
1.просто на timeline разместил кнопочки.
2.можно воспользоваться enabled и visible.
3.так же можешь слой-маску использовать.
смотри сюда www.redsamurai.ru

Dimmi 13.08.2007 11:36

Вложений: 1
Извените что задержался с выкладкой исходника! вот так примерно вызлядит мое меню, просто хочу чтобы при активном окне сайта эта менюха оставалась активной :)

Цитата:

Сообщение от opportunity
на данный момент знаю три способа.
вот, я сделал для тебя, посмотри, кажется самый легкий (1) его и выложил.
1.просто на timeline разместил кнопочки.
2.можно воспользоваться enabled и visible.
3.так же можешь слой-маску использовать.
смотри сюда www.redsamurai.ru

НАдо будет попробывать но думаю это не мой случай но все равно спасибо, может и поможет! Но для опыта никогда не помешает :)

Ну что, у меня чтото получится, просто я сделал исче каким образом, немного не через то место но все же, в кнопке просто в кадре HIT написал
Код:

_root.gotoAndPlay("up")
Может так чтото получится?! Просто при тесте то работает то не, посоветуйте чтото другое

Dimmi 14.08.2007 14:51

Извеняюсь :( Незнал :)

etc 14.08.2007 14:52

Dimmi, если вы ещё раз поднимите тему, я вам выдам плюс.
Более того, на форуме не клепают подряд пачку постов, а редактируют один и тот же.

Molecula 14.08.2007 15:14

Я чёт ничё не понял.
У тебя там слово 'новости' и мувик в мувике в группе и в мувике, где квадратики мигают.
Разгрупируй всё до одного мувика (Контрол+В) для начала, а потом обращайся к нему
Код:

mcb1.gotoAndPlay('up')

Wolsh 14.08.2007 23:16

Dimmi, дружеский совет - прочитай про маски и переделай эту киноэпопею. Двумя слоями и полсотней кадров ты легко обойдешься. Наверняка тогда кто-нибудь поможет. А здесь слоев, символов и кадров больше, чем на всем моём сайте vedma.net.ru , к примеру. Никакого желания разбираться, извини.

Molecula 14.08.2007 23:41

Я кстати, не понял, где меню то там...хоть просвятите.

Dimmi 15.08.2007 11:17

так а как можно через маски это все сделать?! :) Я просто реальный новичок в этом деле :)) И если через маски то какой код тогда нужен для того что бы кнопка была активна?!

Wolsh 15.08.2007 12:01

есть пара сотен способов. Всё зависит от того, как ты сделаешь кнопку, будут ли другие такие же кнопки, будут ли другие кнопки другими, как они должны взаимодействовать друг с другом, должна ли кнопка в состоянии "уже нажата" как-то реагировать на мышь и т.д. Нет же универсального рецепта на все эти случаи. А так... я делал недавно тулбар типа как в фотошопе (ну или как во флэше) - там, если помнишь, тоже много кнопочек и они нажимаются и остаются нажатыми. Поскольку после нажатия кнопка не должна ни на что реагировать, я делал просто this.enabled = false (при нажатии), а при нажатии на другую - энаблил все обратно. Когда кнопка дизаблена, она не реагирует на мышь и не будет менять свое состояние - соотв. ты просто переводишь ее на нужный кадр, где она изображена нажатой. А если кнопка будет реагировать, то переводи-не переводи, она вернется к состоянию _up, как только мышь с нее уйдет.
///////////// UPDATE ////////////////
Вот набросал примерчик. Тут и маски посмотришь, и как кнопки фиксировать.
Сначала может показаться, что маски можно было и не делать - раскрасить квадратики в нужный цвет и всё. А теперь представь, что тебе захотелось цвет квадратиков поменять, и вспомни свою киноэпопею, и посмотри как это просто здесь. Разбирайся, удачи :)

Dimmi 16.08.2007 14:59

Огромное спасибо!!!! Мне ОЧЕНЬ это помогло! ПРосто я применил этот код в своем случае (из примера), разгрупировал все на мувики и все как по мази прошло! Все получилось! я сделал так

Код:

mcb1.onRelease = function(){
        enableAll();
        this.enabled = false
        this.gotoAndPlay("up");
        }
mcb2.onRelease = function(){
        enableAll();
        this.enabled = false
        this.gotoAndPlay("up");
        }
function enableAll(){
        mcb1.enabled = true
        mcb2.enabled = true
        }


Dimmi 06.12.2007 17:42

Доброе время суток! У меня снова вопрос по меню :)
Проблема - при нажатии на другую кнопку все все кнопки проигруют "down". как тут быть? Может я гдето прощитался...
Код:

//код для 2-ух кнопок
mcb1.onRollOver = function() {
        this.gotoAndPlay("up");
};
mcb1.onRollOut = function() {
        this.gotoAndPlay("down");
};
mcb1.onRelease = function() {
        enabledAll();
        this.enabled = false;
        this.gotoAndStop(8);
};
mcb2.onRollOver = function() {
        this.gotoAndPlay("up");
};
mcb2.onRollOut = function() {
        this.gotoAndPlay("down");
};
mcb2.onRelease = function() {
        enabledAll();
        this.enabled = false;
        this.gotoAndStop(8);
};
function enabledAll() {
        mcb1.enabled = true;
        mcb2.enabled = true;
        mcb1.gotoAndPlay("down");
        mcb2.gotoAndPlay("down");
}



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

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