Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Общие вопросы (http://www.flasher.ru/forum/forumdisplay.php?f=10)
-   -   Почему не работает HitTest если... (http://www.flasher.ru/forum/showthread.php?t=61667)

a-mann 09.08.2004 13:45

Почему не работает HitTest если...
 
Вложений: 1
У меня проблема. Если на одной (и единственной) сцене поместить хиттестовую кнопку, то она прекрасно работает. НО если Добавить ещё одну сцену, то кнопка перестаёт работать!!! Попал я с этим делом когда начал делать прелоадер. Думал может сам напортачил и просто тупо добавил сцену и сделал анимацию движения (предварительно естественно удалив сцену с прелоадером) и НЕ РАБОТАЕТ.Почему??? :confused:

FreeLander 09.08.2004 14:16

слишком сложно там всё сделано имхо.
зачем там вообще хиттест нужен, я не шибко рабирался, но кажется можно обойтись при помощи onRollOver, onRollOut.
Опиши что ты вообще хочешь увидеть в конечном счёте.

a-mann 10.08.2004 10:25

Я хочу чтобы работала кнопка 02: Попробуй выкинуть другую сцену, и она работает, добавь новую и кнопка перестаёт работать,. Я бы хотел понять почему

Жень Шень 10.08.2004 12:01

Привет!
Мне кажется у тебя не всё впорядке с адресацией.
Попробуй так:
trace (_currentframe)
gotoAndStop(_currentframe+pl);
и так:
trace (_currentframe)
_root.gotoAndStop(_currentframe+pl);
В первом случае ты обращаешся к тамйлайну кнопки.

Далее, обявлена pl = false; а потом var pl = ... А это уже локальная переменная!

В-третих, сцены капризная вещи в отношении немерации кадров. Идет сквозная нумерация всех сцен. Поэтому лучше пользоваться метками. А лучше отказаться от сцен при сложном коде.

Может окончательный код на кнопке такой надо?
onClipEvent (load) {
pl = false;
}
onClipEvent (enterFrame) {
pl = hitTest(_root._xmouse, _root._ymouse, true) ? 1 : -1;
_root.gotoAndStop(_currentframe+pl-1);
}
Я просто не понял, где надо gotoAndStop сделать.

a-mann 10.08.2004 23:46

Не работает. И потом зачем нужен trace (_currentframe)?? Он печатает в оутпуте номер кадра бесконечное количество раз!
если сделаешь _root.gotoAndStop(_currentframe+pl-1) ,то мувик 002 до конца не доигрывается. Нет что-то тут не то...
:eek:

silin 11.08.2004 00:23

тебе говорят, что сцены мутная вещь, а ты не веришь..
onClipEvent (enterFrame) {
var pl = hitTest(_root._xmouse, _root._ymouse, true) ? 1 : -1;
this. gotoAndStop(_currentframe+pl);
}
объяснения ищи сам

artfla$her 11.08.2004 01:49

Раз silin успел меня опередить, попробую дать объяснение (которое было получено мною вследствии долгих страшных пыток над Flash 2004). Если использовать gotoAndStop в коде клипа, не указывая this, то параметр, который передается этому методу, будет преобразован относительно всех кадров фильма. Т.е. gotoAndStop(10) (код в десятом кадре второй сцены), если есть две сцены и в первой 10 кадров, будет равен gotoAndStop(20) (10-ый кадр второй сцены - это 20-ый фильма). Если указать this, то параметр метода будет напрямую указывать кадр клипа. Надеюсь, я понятно выразился и мои истязания Flash-ки дали хоть сколько-нибудь правильный вывод.

Жень Шень 11.08.2004 11:15

"Будь проще, и к тебе потянуться люди".
Из "Золотых засыпей"
Цитата:

Оригинал написал(а) a-mann
И потом зачем нужен trace...
Команда trace используется для отображения различных сообщений при отладке фильма.
Введена в код для наглядности - ну чтоб ты видел собственные вилы!
Бесконечное число раз - так ведь enterFrame - "каждый раз в воиспроизводимом кадре".
Это прописные истины можно прочесть в ХЭЛПе.

Насчет сцен писалось неоднократно на форуме.
Прочти еще это для развития:
http://www.vmstudio.com/materials.php?noscenes
Статья категоричная, но полезная.

Кагда отвечают, будь вежливей - на тебя потрачено время и некоторые усилия разобрать твой код, а не отвечать "зачем нужно".
Задавать вопросы нужно более точно.
Вон тоже FreeLander не понял: "Опиши что ты вообще хочешь увидеть в конечном счёте."
Писалось все без задней мысли. Всегда рад буду помочь. :)

a-mann 11.08.2004 17:27

Всем большое спасибо, впредь буду стараться изъясняться понятнее. ;)


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

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