Просмотр полной версии : Повторение функций
Волгоградец
25.09.2007, 10:05
Превед. Помогите разобраться с такой проблемой:
function func_1 (){
............. //какой-то код
but._visible = true; //изначально кнопка не видна
}
func_1 (); //вызываем функцию
but.onRelease = function (){
.............
but._visible = false; //кнопка исчезает
func_1 (); //снова выполняется функция, и, по идее, снова
} //должна появиться кнопка
Так вот, хочется, чтобы этот цикл был бесконечным, т.е. проирал клип - появилась кнопка, нажал кнопку - она исчезла и снова проиграл первый клип и снова появилась кнопка и т.д. Загвоздка в том, что при приведенном коде цикл повторяется два раза и все... Помогите разобраться. Спасибо.
Надо зациклить анимацию.
В последнем кадре кадре поставить func1() и stop().
внутри релиза убрать func1 и поставить gotoAndPlay(1)
Волгоградец
25.09.2007, 11:57
Но это получится, что код придется разбить. А хотелось бы организовать весь код в одном месте - в первом кадре главной линейки.
Волгоградец
26.09.2007, 10:57
А что если клип перемещается и нет смысла писать код в последнем кадре и писать метод gotoAndPlay()?
function func_1 (){
mc_1.onEnterFrame = function (){
this._x += 5;
if (this._x > 150) {
this._x = 150
this.stop ();
but._visible = true;
delete this.onEnterFrame;
}
}
}
//Клип перемещается и при достижении определенной области
//останавливается и появляется кнопка
func_1 ();
//При нажатии на кнопку появляется второй клип
but.onRelese = function (){
but._visible = false;
mc_2._x = 400;
mc_2._visible = true;
}
//Клип перемещается и при достижении определенной области
//исчезает и весь код должен начаться сначала
mc_2.onEnterFrame = function (){
this._x -= 10;
if (this._x < 50) {
this.stop ();
this._visible = false;
delete this.onEnterFrame;
mc_1._x = 10;
func_1 ();
}
}
Приведенный код - нерабочий. Нет циклического повторения - не могу понять почему.
можно в онэнтер фрейм воткнуть условие которое выполняется в случае прохождения головки воиспроизведения через последний кадр.
chingachgoog
26.09.2007, 15:41
Не знаю, самый первый код работает полностью корректно, просто гашение кнопки на глаз не заметно, т.к. после этого сразу вызывается функция включения кнопки.
Волгоградец
26.09.2007, 15:43
У меня есть вариант - создать пустой клип за пределами сцены - на него повесить онэнтер фрейм и отслеживать положение клипа mc_2 и когда его положение достигнет определенной области - запускал бы первую функцию... А ничего, что используется много методов onEnterFrame? Ведь это вроде нагружает процессор.
chingachgoog
26.09.2007, 15:54
А зачем пустой клип создавать? Пусть mc_2 сам себя и проверяет в onEnterFrame.
Думаю грузит процессор не сам onEnterFrame, а то что в него вложено :-)
странно что код нужен именно в 1 кадре, если б в последнем заморочек с онЕнтером не надо было б
function func1(){
but._visible = true;
}
but.onRelease = function (){
but._visible = false;
}
this.onEnterFrame = function(){
if(this._currentframe == this._totalframes && !but._visible){
func1();
}
}
правда плохо что постоянно идет обновление релиза и функ1
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.