PDA

Просмотр полной версии : Отключение активности спрайта-контейнера


Chum
27.03.2013, 10:14
Подскажите плиз.
Есть спрайт-контейнер в котором вложенным спрайтам прописаны функции мышиных событий. Есть ли способ деактивировать спрайт-контейнер таким образом что-бы вложенные спрайты на время деактивации не реагировали на мышиные события.
Смотрел официальную документацию AS3, там для спрайта не прописано свойство enabled.
Если у кого-то есть способ решения данного вопроса, поделитесь плиз.

Hauts
27.03.2013, 10:25
mouseChildren = false;
mouseEnabled = false;

Chum
27.03.2013, 10:32
Т.е. если я правильно понял для спрайта-контейнера:
container.mouseChildren = false;
container.mouseEnabled = false;

Hauts
27.03.2013, 11:13
Chum, а вы попробуйте, попробуйте.

Chum
27.03.2013, 11:20
Сейчас я переделываю одну работу и данное решение мне потребовалось для использования в ней.
До Cntrl+Enter ой как далеко, а отвлекаться на примеры - нет времени.
Спасибо.

AlexCooper
27.03.2013, 14:03
До Cntrl+Enter ой как далеко, а отвлекаться на примеры - нет времени.

Судя с поста, я думаю Вас ожидают невероятные дни отладки, после магического Cntrl+Enter. Советую познакомиться с ним пораньше

mikhailk
27.03.2013, 14:10
Да ладно, судя по вопросам в последний период, народ то ли курсовые по флешу пишет, то ли дипломы. Кое-как запустятся, и то хорошо.

Chum
28.03.2013, 10:37
Хочу немного расширить тему и задать вопрос по применению метода setChildIndex класса DisplayObjectContainer. В официальной документации приведены примеры с уже созданными объектами, хотелось бы уточнить как обстоят дела в динамике.
Предположим есть контейнер с 10 вложенными объектами.
Правильно ли я понимаю что если в динамике создав новый спрайт я выложу его в контейнер на самый низкий уровень, как-то так:
container.setChildIndex(container.addChild(mysprite), 0);
то все ранее добавленные в этот контейнер объекты перейдут последовательно на один уровень выше (т.е. с 0 на 1, с 1 на 2 ... и т.д.) .

Или если я созданный в динамике спрайт добавлю в контейнер на уровень 5:
container.setChildIndex(container.addChild(mysprite), 5);
то все нижележащие объекты останутся на своих позициях, а вышележащие перейдут последовательно на позицию выше?

bav
28.03.2013, 10:51
Да, вы правильно понимаете. Только проще, в данном случае, использовать метод DisplayObjectContainer::addChildAt (http://help.adobe.com/ru_RU/FlashPlatform/reference/actionscript/3/flash/display/DisplayObjectContainer.html#addChildAt%28%29), который сразу добавляет ребенка на нужный индекс.
container.addChildAt(mysprite, 0);

Hauts
28.03.2013, 10:55
Да ладно, судя по вопросам в последний период, народ то ли курсовые по флешу пишет, то ли дипломы. Кое-как запустятся, и то хорошо.

— Чертовски согласен. Еще я бы добавил новое поколение игроделов, которые "стопятся" на втором же классе :)

Сорри за оффтоп.

Chum, если два разных вопроса, то создавайте две разные темы, так лучше, и вам, и тем, кто будет пользоваться поиском по сайту. Это так, на будущее.