Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   добавление объектов под маску (http://www.flasher.ru/forum/showthread.php?t=136536)

ALEX666 19.02.2010 06:09

добавление объектов под маску
 
Здравствуйте! Наверное, глупый вопрос, но всё же: можно ли замаскировать контейнер, в который помещён другой контейнер, и добавлять объекты во второй? Я-то уверена, что да, но вот эти объекты появляются через раз, а иногда прячутся за этот второй контейнер, который, в свою очередь, тоже иногда странно себя ведёт! Так что на всякий случай решила спросить:)

Код AS3:

stage.addChild(circle);
fon.mask=circle;
addEventListener(Event.ENTER_FRAME,korzinaListener);
private function korzinaListener(e:Event):void{
                    if(circle.hitTestObject(korzina)){
                                removeEventListener(Event.ENTER_FRAME,korzinaListener);
                                addEventListener(Event.ENTER_FRAME,korzina1Listener);
                                            //удаляем уже имеющиеся объекты
                                while(ekran.numChildren>0){
                                    ekran.removeChildAt(0);
                                }
                                ekran.addChild(ecomtxt);
 
                    }
}
private function korzina1Listener(e:Event):void{
                    if(!circle.hitTestObject(korzina)){
                        removeEventListener(Event.ENTER_FRAME,korzina1Listener);
                        addEventListener(Event.ENTER_FRAME,korzinaListener);
                    }
}


может имеет значение, что объектами является текст?

gloomyBrain 19.02.2010 11:23

Цитата:

можно ли замаскировать контейнер, в который помещён другой контейнер, и добавлять объекты во второй?
Да. Но как это связано с кодом выше?

ЗЫ
Вот вы проверяете, пересекается или нет circle с korzina и каждый раз переназначаете слушателя. А зачем? Не проще в одном EnterFrame-обработчике сделать что-то типа:
Код AS3:

if(circle.hitTestObject(korzina)) {
        doSomething();
}else {
        doSomethingElse();
}
 
...
 
public function doSomething() {
//...
}
 
public function doSomethingElse() {
//...
}

А то код совсем запутанный получился =)

ALEX666 19.02.2010 11:55

Цитата:

Сообщение от gloomyBrain (Сообщение 887842)
Да. Но как это связано с кодом выше?

ЗЫ
Вот вы проверяете, пересекается или нет circle с korzina и каждый раз переназначаете слушателя. А зачем? Не проще в одном EnterFrame-обработчике сделать что-то типа:
Код AS3:

if(circle.hitTestObject(korzina)) {
        doSomething();
}else {
        doSomethingElse();
}
 
...
 
public function doSomething() {
//...
}
 
public function doSomethingElse() {
//...
}

А то код совсем запутанный получился =)

Если так сделать, то событие будет возникать каждый кадр, пока circle пересекается с korzina, поэтому необходимо при достижении этого события сразу удалять слушателя:)
А связано вот как: замаскирован fon, в него добавлен ekran, а в ekran должны помещаться объекты, которые не хотят делать это без ошибок!


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

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