![]() |
Как всегда HELP!! Вопрос по поводу MovieClip'ов
Проблема вот в чем:
Есть объект, который содержит в себе еще кучу объектов. В частности другой, который должен реагировать на наведение. Код первого: onClipEvent (mouseDown) { this.onPress = function () { startDrag (this); s=1; } } onClipEvent (mouseUp) { stopDrag (); s=2; } onClipEvent (enterFrame) { if (s==1 and (this._alpha <= 100 or this._alpha > 100) and this._alpha > 50) { this._alpha -= 3; } if (s==2 and this._alpha < 100 and this._alpha >= 40) { this._alpha += 3; } this.useHandCursor = false; } Код второго (вложен на 1 уровень вниз, относительно первого): onClipEvent (enterFrame) { this.onRollOver = function () { trace ("onRollOver called"); } this.onRollOut = function () { trace ("onRollOut called"); } } Глюк в том, что стоит кликнуть в любой области экрана, и после этого trace не выводится. Работает только перетаскивание (тут без косяков). Я предпологаю, что это вызвано тем, что после команды this.onPress = function () объект конвертируется в кнопку, а в кнопке заменяются имена на какие-то другие. Есть ли какие-либо операторы, позоляющие конвертировать тип объекта? Или же по-другому реагировать на Press? Помогите пожалуйста - со вчерашнего дня бьюсь... Уже всю пачку скурил. |
попробовал. Действительно при использовании события onPress клип, по всей видимости, получает свойства кнопки, а внутрь нее обратиться нельзя.
вот этот код рабочий: Код:
var s:Number = null; |
Спасибо....но это не совсем то....у меня объект круглый, а вот эта строчка "this.hitTest(_root._xmouse, _root._ymouse, false)" делает рабочую область квадратной.
Этот способ приходил мне в голову, но убедившись, что он мне не нужен, я отбросил его. Но все равно спасибо... Может, еще что-то можно сделать? Что если каждый кадр говорить кнопке, что она MovieClip? Или как-нить сделать так, чтобы она вообще не конвертировалась? Вот только как? |
this.hitTest(_root._xmouse, _root._ymouse, true) - обнаружение конфликта будет происходить только на самом мувике
|
Спасибо, конечно... Но это опять не то... _root._xmouse, _root._ymouse устанавливает все те же квадратные рамки. Только эффект уже другой. Если кликнуть рядом с рабочей областью клипа, на другой такой же - получается, что теряют прозрачность оба.
Все равно спасибо.... Если ничего другого до конца дня не предложат - буду использовать этот метод. |
Все работает
на внешнем мувике: onClipEvent (mouseDown) { if(this.hitTest(_root._xmouse,_root._ymouse, true)){ startDrag (this); s=1; } } onClipEvent (mouseUp) { stopDrag (); s=2; } onClipEvent (enterFrame) { if (s==1 and (this._alpha <= 100 or this._alpha > 100) and this._alpha > 50) { this._alpha -= 3; } if (s==2 and this._alpha < 100 and this._alpha >= 40) { this._alpha += 3; } } На внутреннем мувике: on(rollOver){trace ("onRollOver called");} on(rollOut){trace ("onRollOut called");} |
Вложений: 1
чего то вы такого не понятного тут написали.
|
Блин! Да тупость получается.. Создай 2 круглых объекта и наложи один поверх другого, потом скопируй в каждый из них этот код. Публикуй. попробуй пошевелить один. В том месте, где его перекрывает второй... Шевелится только один, а альфу теряют оба. Вот так.
|
ты не блинкай, ты лучше нормально объясни что у тебя не получается, потому что по первому посту ты вообще другое хотел
|
В данном случае идет проверка не на сам клип, а на место, где стоит этот клип. Если под ним есть такой же объект, то будет шевелиться именно нижний, поскольку, скорее всего он выполняется позже (очередность команд), а 2 startDrag'а запустить нельзя. Но все остальные параметры работают. Переменная "s" становится равной 1 и цикл с альфой начинается.
|
| Часовой пояс GMT +4, время: 01:33. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.