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

BM Senya 26.04.2007 17:50

две кнопки связанные одним действием
 
Привет, уважаемые!
Не могу понять как сделать:
имеются две кнопки в разных местах (и допустим в разных слоях, _root?)
нада чтоб при наведении на первую вторая тоже активировалась (короче обе они имели одни и те же действия).
Заранее благодарю!

Molecula 26.04.2007 18:14

Цитата:

...(короче обе они имели одни и те же действия)
А зачем? Пусть это будет одна кнопка.
Ну а вообще:

Код:

my_btn1.onRollOver=my_btn2.onRollOver=function(){
trace("Cool")
}

...так они делаеют одно и тоже.
А что бы вторая акитивировалась:
Код:

my_btn1.onRollOver=function(){
trace("Cool")
my_btn2.gotoAndStop("active")
this.gotoAndStop("active")
}

где "active" - у тебя метка-кадр, там муви-переходит в другое состояние.

BM Senya 26.04.2007 19:04

А в этом коде как обьеденить мс3 и btn3
Код:

mc3.onRollOut=function() {
var i=mc3._currentframe
this.onEnterFrame = function() {
mc3.gotoAndStop(i--)
}
}
mc3.onRollOver=function() {
delete (this.onEnterFrame)
mc3.play()
}


Molecula 26.04.2007 19:31

В смысле объеденить?...так?:
Код:

btn3.onRollOut=mc3.onRollOut=function() {
var i=this._currentframe
this.onEnterFrame = function() {
this.gotoAndStop(i--)
}


BM Senya 26.04.2007 19:56

У меня на btn3 одна анимация стоит на mc3 другая
так вот мне нужно чтоб навёл на одну из них и анимация проигрывалась у обех одновременно

Molecula 26.04.2007 20:08

Но они же начинают играть с одной метки.
Пусть у "btn3" играет с 10-го кадра, а у "mc3" с 45-го.
Ставь на них метки "go" и пиши:
Код:

btn3.onRollOver=mc3.onRollOver=function() {
this.gotoAndPlay("go");
}


Kikasso 26.04.2007 20:19

Код:

var btnsObj:Object = new Object();
var pressedBtn:String = "";
btnsObj.id1 = [ btn1, btn2 ];// одна пара кнопок
btnsObj.id2 = [ btn3, btn4 ];// другая пара
function buttonsMan( prop:String, oldval:String, newval:String):String{
if(oldval == newval ) return oldval;
if( oldval != "" ){
 var arr:Array = btnsObj[oldval];
 for (var i = 0; i<arr.length; i++ ){
  var btn = arr[i];
  btn.enabled = btn.useHandCursor = true;
  btn._alpha = 100; // старые кнопки - возврат состояния
 // можно и в кадр отправить
 }
}
if( newval != ""){
 var arr:Array = btnsObj[newval];
 for (var i = 0; i<arr.length; i++ ){
  var btn = arr[i];
  btn.enabled = btn.useHandCursor = false;
  btn._alpha = 60; // эти кнопки нажаты
 }
}
return newval;
}
this.watch("pressedBtn", buttonsMan);
btn1.onPress = btn2.onPress = function(){
 trace( this );
 pressedBtn = "id1";
}
btn3.onPress = btn4.onPress = function(){
 trace( this );
 pressedBtn = "id2";
}

примерно так. Писал на коленке.

BM Senya 26.04.2007 20:22

Посмотри Inbrief.ru по типу того

а чё в кавычках писать
и яне понял где про анимацию ты написал

Kikasso 26.04.2007 21:08

Там где trace стоит, поставь код, который должен вызываться.
А функция buttonsMan занимается как раз внешними эффектами. Я без эффектов просто альфу поменял, а ты можешь в кадр с нужной меткой отправить.
Что такое watch, и как оно работает, посмотри в хелпе. Меняем свойство, вызывается функция.
Создай 4 кнопки, назови btn1, btn2, btn3, btn4, весь код в первый кадр и покликай.

upd: на коленке, а без ошибок.

Molecula 26.04.2007 21:32

Ах вот вы про что...ну тогда можно и так:
Код:

function Find_Shit(){
    var _col_but=2
for (var obj in box){
        if (typeof(box[obj]) == "movieclip")
        {
            if (obj.substr(0, 5) == "baton")
            {
        var btn_ = box[obj];
        btn_.onRollOver = function (){
            for(i=1;i<_col_but+1;i++){
                    var btn = obj.substr(0, 5)+i;
                box[btn].gotoAndPlay("go") }
                }
        btn_.onRollOut = function (){
                for(i=1;i<_col_but+1;i++){
                        var btn = obj.substr(0, 5)+i;
                  box[btn].gotoAndPlay("go2") }
        }
        }
                  } // end if
        } // end if
    } // end of for...in
 
Find_Shit();

+ ссылка на исходник http://khk.com.ua/shit.rar

У тебя есть мувик "box", в нем два мува "baton1" & "baton2", в них метки "go" & "go2"

Т.е. общий смысл функци: ищет в мувике "box" мувики "baton" и при наведении на один из них он переходит на кадр с меткой "go" во всех "baton" на чиная с i=1.

Если поставишь ещё 2 мува и назовешь их "baton3" "baton4" и изменишь var _col_but=4, то все четыре проиграются.

Так что выбирай...Kikasso написал тоже нормально.


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

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