Class, MovieClip, SimpleButton. Не срабатывает обработчик MouseEvent.CLICK
Присоединяю к классу клип, в котором 2 кадра. В кадрах - кнопки. В зависимости от значения некой переменной frame, происходит выбор кадра:
Код AS3:
Код AS3:
Уже голова почти разбита об стену - не понимаю, отчего это может быть. Перепробовала все вариации: называла кнопки в разных кадрах по-разному, добавляла стоп-кадры, даже удаляла кнопку из первого кадра, оставив только во втором... Ничто не помогло. Единственное, что понятно: если кадр один, тогда все отлично работает. Итого получается, что проблема в gotoAndStop(). Но какая может быть проблема в этом элементарном действии?.. Еще такой момент: кроме кнопки cancel_btn в этих кадрах есть и ok_btn. С этой кнопкой все в порядке. Разница между ok и cancel кнопками в том, что кнопка ok_btn в обоих кадрах одна и та же. По идее, этот факт должен исключить влияние на проблему метода gotoAndStop(), который сейчас главный подозреваемый... но какая проблема может быть другая? Кто-нибудь, по возможности, просветите меня в этом вопросе. Буду весьма-весьма признательна. |
может быть событие срабатывает не на этой кнопке, а на другом объекте клипа? Попробуйте
Код AS3:
|
Скорее всего тут дело вот в чем: Flash IDE генерирует поля класса, которые ссылаются на объекты дисплей-листа: это сделано для удобства. И вот поменяв кадр у клипа поле класса не затронется никак: и оно будет продолжать ссылаться на клип в первом кадре. Нужно доставать содержимое методами, для доставания контента.
Попробуйте вот так: Код AS3:
|
Цитата:
Цитата:
|
Обращаясь вот так: clip.cancel_btn мы будем ссылаться на некоторое поле cancel_btn, которое будет указывать всегда в одно место. Если мы вызовем gotoAndStop, скорее всего, это поле значения не изменит и будет до сих пор ссылаться в прошлый первый кадр.
|
может проще сделать?
поменять Код AS3:
Код AS3:
|
Ну собственно да, я это и предложил - даже если не поможет, то хоть можно будет увидеть на каком объекте срабатывает клик.
Тигра - я имел ввиду зачем надо "as SimpleButton", если ИДЕ итак знает что это кнопка (судя по словам топикстартера) |
и ещё: во втором кадре экземпляр кнопки имеет тоже имя "cancel_bnt" (instance name)? это так - на всякий случай
|
Код AS3:
А логичный и обнадеживающий код: Код AS3:
Код:
Error #1009: Cannot access a property or method of a null object reference. Печаль сплошная :) Это же, кажется, такая элементарщина - передвинуться на заданный кадр! Думаю, ребята, если еще какая-нибудь идея на эту тему блеснет, скорее всего она будет рабочей :) Добавлено через 5 минут Цитата:
|
Цитата:
Мне одному кажется, что программировать в кадрах перестали 6 лет назад? |
Часовой пояс GMT +4, время: 20:15. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.