Просмотр полной версии : 3 способа написания кода для кнопки!
Evgeny_Flash_8
20.12.2008, 13:29
Здравствуйте!
У меня проблемы с кнопками.
1) Когда указываешь в самой кнопке код:
on (press) {
nextFrame ();
}
on (press) {
prevFrame ();
}
Проблем нет, код работает.
2) А когда вставляешь такой код:
next_btn.onPress = function () {
nextFrame ();
}
prev_btn.onPress = function () {
prevFrame ();
}
Не работает. Думал проблема в имени, но и с другими именами проблема, не знаю что делать..
3) А это тоже не работает!
//строгая типизация переменной
var i:Number = 1; // первый кадр
var j:Number = 6; // максимальное кол-во кадров
//определяем функцию goNextFrame()
function goNextFrame() {
if (i<j) {
nextFrame();
i = i + 1;
}
}
//определяем функцию goPrevFrame()
function goPrevFrame() {
if (i>1) {
prevFrame();
i = i - 1;
}
}
//назначаем ссылку на функцию обработчику событий кнопки onPress
next_btn.onPress = goNextFrame;
//назначаем ссылку на функцию обработчику событий кнопки onPress
prev_btn.onPress = goPrevFrame;
Научите работать с кнопками! :( Есть 3 способа, а получается только один. Скажите где моя ошибка?
Код надо писать в кадр, а не на кнопках, как в прошлом веке.
Последний скрипт прекрасно работает. Только непонятны махинации с i и j - есть свойство currentFrame, есть totalFrames, они здесь прекрасно заменяют школьный бейсик.
Экстрасенс скажет Вам что Вы делаете не правильно. Зачем ваще атачить к сообщению пример?
Я не экстрасенс, но думаю, что не правильно скорей всего то, что Вы название кнопки в библиотеке символов принимаете за имя кнопки для скрипта. Поэтому не работают кнопки.
у кода "на кнопке"
on (press) {
prevFrame ();
}
this - это мувик, в котором находится кнопка (к слову: это не относится к коду на мувике, там this - сам мувик)
при определении метода кнопки
next_btn.onPress = function () {
nextFrame ();
}
this в нем будет указывать на самому кнопку
отсюда и непонятки : nextFrame вызывается для разных объектов
Evgeny_Flash_8
22.12.2008, 18:19
silin.
Покажи, как двумя способами организовать это?
Имена и т.д. я знаю как писать к кнопкам :)
Жду ответа!
И еще вопрос не по теме! "Как закрыть свою тему?" Пожалуйста только громко не смеяться!!! :)
Автор не может закрыть или удалить тему - закрывают модераторы, удаляют админы.
А громко смеяться - это над просьбой "показать как". Вам оба варианта кода дали, Вам исходник с кнопкой чтоли сделать??? Пошевелите пальцем.
Evgeny_Flash_8
22.12.2008, 22:03
у кода "на кнопке"
on (press) {
prevFrame ();
}
this - это мувик, в котором находится кнопка (к слову: это не относится к коду на мувике, там this - сам мувик)
при определении метода кнопки
next_btn.onPress = function () {
nextFrame ();
}
this в нем будет указывать на самому кнопку
отсюда и непонятки : nextFrame вызывается для разных объектов
Первый код работает, а второй нет (который написан выше!!!).
Вам оба варианта кода дали, Вам исходник с кнопкой чтоли сделать??? Пошевелите пальцем.
Исходник с кнопкой не надо!!! Смотри тему выше, первый код я умею делать!!! :)
А второй не получается...
this в нем будет указывать на самому кнопку
отсюда и непонятки : nextFrame вызывается для разных объектов
как сделать, чтобы НЕПОНЯТОК не было?
Нужен КОД
второй код ПИШЕМ В КАДРЕ назвав кнопку "next_btn" Смотри тему выше, сообщение №2.
Evgeny_Flash_8
22.12.2008, 22:21
второй код ПИШЕМ В КАДРЕ назвав кнопку "next_btn" Смотри тему выше, сообщение №2.
Ха-ха-ха. Об этом я в курсе!!! :) А если у меня не пашет.
+ Я делаю все по книжке...
Может мне сюда свое выложить??? Что бы вы все голову поламали???
artem_fs
22.12.2008, 22:26
может не там называем кнопку?
О, Злой Гений :) aksios был прав))))))
Я думаю что Вы делаете это все под Macromedia Flash 4, или понаписали в своем проекте уже столько кода везде где можно и нельзя, что...)) Впрочем я не желаю Вас оскорбить ни в коем случае, все с этого начинали, и я тоже. Давайте свой чудо-юдо-исходник!
Evgeny_Flash_8
22.12.2008, 22:31
Я чувствую тут уже флуд идет не по теме.
Я завтра наверное или на днях (если в этот теме ответа не найду) создам новую тему.
В ней будет 3 одинаковых работ, из которых 1 рабочая будет, а 2 нет.
Там будет использован код (первого поста этой теме).
И хватит тут меня держать за дурака, я ведь учусь еще только во флеше летать. И глупые вопросы с друзьями, такими же как я решаю. (Как лучше назвать кнопку и т.д. :) )
А в книжке вычитал про три метода, как можно организовать код к кнопке. Я до этого знал 1 и радовался им :) .
Но другие 2 метода у меня не ПАШУТ, я спросил почему? Мне ответили:
при определении метода кнопки
next_btn.onPress = function () {
nextFrame ();
}
this в нем будет указывать на самому кнопку
отсюда и непонятки : nextFrame вызывается для разных объектов
Я спросил:
как сделать, чтобы НЕПОНЯТОК не было?
Нужен КОД
И пошел ФЛУД не по теме, который я не люблю ...
artem_fs
22.12.2008, 22:34
Вам код написали, и он был процитирован несколько раз уже. может исходник дадите?
next_btn.onPress = function () {
this._parent.nextFrame ();
}
Evgeny_Flash_8
22.12.2008, 22:47
Я объяснять не буду. Там и так все ясно ...
Качайте и смотрите!!!
Предлагаю сделать проще. Вот Вам рабочие исходники с двумя непонятными вариантами, изучайте.
зЫ. Когда silin говорил о непонятках, он имел в виду то, что у Вас возник вопрос, а не то, что Флэш не понимает кого переводить на следующий кадр. Это не какая-то неопределенность в программе или языке.
А флуд - это Ваши угрозы сломать нам головы. Бросьте :)
Evgeny_Flash_8
22.12.2008, 22:50
next_btn.onPress = function () {
this._parent.nextFrame ();
}
Интересно! Проверю сейчас работает или нет! :)
Неа :(
Вы не назвали Ваши кнопки. Вот и вся беда.
Evgeny_Flash_8
22.12.2008, 23:00
Предлагаю сделать проще. Вот Вам рабочие исходники с двумя непонятными вариантами, изучайте.
зЫ. Когда silin говорил о непонятках, он имел в виду то, что у Вас возник вопрос, а не то, что Флэш не понимает кого переводить на следующий кадр. Это не какая-то неопределенность в программе или языке.
А флуд - это Ваши угрозы сломать нам головы. Бросьте :)
Простите! Оказывается я забыл объявить ID в форме.
Все пост можно закрывать! :)
Мой архив не скачивайте!
Это правильный вариант
Вы не назвали Ваши кнопки. Вот и вся беда.
Пост №3 :boredom:
Оказывается я забыл объявить ID в форме.
Я плакалъ. Учитывая что не ID не формы там нет.
Evgeny_Flash_8
22.12.2008, 23:02
Всем большое спасибо! Счастливо оставаться ...
Добавлено через 6 минут
Оказывается я забыл объявить ID в форме.
... забыл объявить для кнопки Instance Name (IN) ...
анимация находится на главной сцене, а вы с помощью кнопки хотите сделать перемещение на следующий кадр, то
next_btn.onPress=function()
{_root.nextFrame()}
Если анимация находится непосредственно в мувике, то
i=0 //номер кадра
next_btn.onPress=function()
{
this.gotoAndStop(i++) //или this.gotoAndPlay(i++)
}
this.gotoAndStop(i++)И с какого нажатия это сработает? (про номер кадра=0 я промолчу). Пожалуйста, без обид, но прежде чем давать людям код, проверяйте его! Вы по крайней мере поймете, где может быть ошибка, а человек спросивший будет две ночи думать, почему у него не работает. Это простая этика)))
this.gotoAndStop(i++)
И с какого нажатия это сработает? (про номер кадра=0 я промолчу). Пожалуйста, без обид, но прежде чем давать людям код, проверяйте его! Вы по крайней мере поймете, где может быть ошибка, а человек спросивший будет две ночи думать, почему у него не работает. Это простая этика)))
Ах да, виноват, должно было получиться вот так, писал не глядя:
i=1
next_btn.onPress=function()
{this.gotoAndStop(++i)}
Ах да, виноват, должно было получиться вот так, писал не глядя:
i=1
next_btn.onPress=function()
{this.gotoAndStop(++i)}
А как вам такой вариант?
i = 0;
next_btn.onPress=function() {
this.gotoAndStop( i = ++i % this._totalframes + 1 );
}ж
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.