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

Nachalo 23.03.2009 14:38

Передача функции от одной кнопки к другой
 
Всем привет!
Мног искал -- не нашел, много сам пробовал -- ничего не получилось! (только начинаю вникать в AC)

Суть такова: есть галерея фоток(вызываются через XML), которая перелистывается при каждом нажатии на кнопку с помощью данного кода:

Код AS1/AS2:

nextButtonMC.onRelease = function() {
        changeImage();
        _root.my_gallery.selectedImage++;
};

Вопрос: возможно ли применить такой хитрый способ -- создать еще кнопку (скажем "ButtonMC") при однократном нажатии на которую она бы давала задание (или видимо правильно написать передавала функцию)
кнопке "nextButtonMC" нажиматься (программно) через определенный промежуток времени. Т.е. таким образом создать слайдшоу.
Пожалуйста,если это не трудно и не займет много времени, напишите код. Или подскажите,где про данный конкретный случай можно почитать.
Спасибо.

lexa2000lexa 23.03.2009 14:45

ну можно попробовать что то в этом духе
Код AS1/AS2:

ButtonMC.onRelease = function(){
        setTimeout(function(){nextButtonMC.onRelease()},1000)
 
}

посленажатия на ButtonMC, через 1 сек нажмется nextButtonMC.

Nachalo 23.03.2009 15:34

Что то не получается. Я пробовал уже и через Сет интервал. Но событие "onRelease" ведь отвечает на команду мыши. Буду пробовать еще, но мне кажется должно быть что-то другое. Все равно -- спасибо!

CorC 23.03.2009 15:50

Если пишете в 1 кадре в сцене, то
Код AS1/AS2:

ButtonMC.onRelease = FPress1;
function FPress1(){
      setTimeout(function(){nextButtonMC.onRelease()},1000);
}


Nachalo 23.03.2009 17:10

Ничего не получается
 
Вложений: 1
Ничего не получается. В общем-то и тот и другой код работают одинаково. Предыдущая картинка меняется на следующую и все. Дальше картинки не меняются. На всякий случай создал совсем простенькую флешку с использоваеием ваших кодов, которая это показывает. Может кто еще что скажет!?

lexa2000lexa 23.03.2009 17:18

а если вот так
Код AS1/AS2:

nextButtonMC.onRelease = function() {
        _root.mc_1.gotoAndStop(_root.mc_1._currentframe + 1)
};
 
 
ButtonMC.onRelease = function(){
        setTimeout(function(){nextButtonMC.onRelease()},1000)
 
}

это вам нужно было?

CorC 23.03.2009 17:30

Вложений: 1
поправил: все работает

Nachalo 23.03.2009 18:38

TO CorC:
У меня почему то не работает! Тоесть работает, но так же,одним циклом. Нужно что бы кнопка "nextButtonMC" программно постоянно нажималась через определенный промежуток времени посредством однократного нажатия на кнопку "ButtonMC" . Если взять загруженную мною флешку, то при нажатии на красную кнопку синий кружочек должен совершать свои движения циклически, через определенный промежуток времени.
TO lexa2000lexa:
В вашем коде есть над чем подумать. Видимо надо прописать какие то условия про общее и загруженное число... Хотя таймлайн здесь не причем. В оригинале нет таймлайна. Буду думать,может как-то приспособлю.

lexa2000lexa 23.03.2009 19:10

вот так вы хотите
Код AS1/AS2:

nextButtonMC.onRelease = function() {
        _root.mc_1.gotoAndStop(_root.mc_1._currentframe + 1)
 
};
nextButtonMC.onPress = function() {
        clearInterval (interval);
}
ButtonMC.onRelease = function(){
        interval = setInterval(function(){nextButtonMC.onRelease()},1000)
}


Nachalo 23.03.2009 19:47

Ну-у-у-у! супер! Именно то, что нужно. Спасибо, Лёха!!! Уже применил/изменил под свой код. Картинки меняются так как надо! Всем спасибо, еще раз!!!


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

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