Форум 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=208439)

infbyte 13.07.2014 21:06

Добавить событие в динамический объект
 
создал динамические карты на столе.
Как сделать так что бы при наведении она просачивалась на передний план?
http://f6.s.qip.ru/uFoPLXXn.png
как уничтожить карту ? что бы она убралась со стола
подскажите плиз

samana 13.07.2014 22:27

Это зависит от того, в какой версии actionscript вы пишите.

infbyte 13.07.2014 22:48

AS3

Попробовал сейчас с прозрачностью, но метод не подходит:
Код AS3:

clip.addEventListener(MouseEvent.CLICK, qwe333)
function qwe333(event:MouseEvent):void{ 
 (event.target as MovieClip).alpha = 0;
}

Карта исчезает, но она блокирует другие карты.

samana 13.07.2014 23:08

Alpha - это просто прозрачность. Даже если она равна нулю, ваш объект продолжает быть на сцене, просто он невидимый.
Вам нужно удалить карту
Код AS3:

if(clip.parent) clip.parent.removeChild(clip)

А чтобы карта выдвигалась на передний план, то при наводке мыши по ней
Код AS3:

if(clip.parent) clip.parent.addChild(clip)


infbyte 13.07.2014 23:42

что-то не хочет:(
Удаляет только одну карту, как-то рандомно , всего один раз.
На передний план не выводит.
Можете подсказать, что не так?



Код AS3:

for (var n=1; n<30; n++) {
 
var clip = new karta();
        clip.x = 400;
        clip.y = 300;
        clip.rotation = Math.random()*360;
 
 clip.addEventListener(MouseEvent.ROLL_OUT, qwe111)
 function qwe111(event:MouseEvent):void{ 
    (event.target as MovieClip).gotoAndPlay(7);
 }
 
 
clip.addEventListener(MouseEvent.ROLL_OVER, qwe222)
 function qwe222(event:MouseEvent):void{ 
  (event.target as MovieClip).gotoAndPlay(1);
  if(clip.parent) clip.parent.addChild(clip);
 }
 
clip.addEventListener(MouseEvent.CLICK, qwe333)
function qwe333(event:MouseEvent):void{ 
  if(clip.parent)  clip.parent.removeChild(clip);
}
 
 
 
    addChild(clip);
 
}


Есть кадр - в нем у меня код, что выше.
Карта - это MovieClip , в свойствах которого я поставил галку напротив : "export for AS" после чего ему пристроилось классовое имя karta

samana 14.07.2014 00:10

Не правильно работает, потому что есть ссылка, только на последнюю карту. Попробуйте так
Код AS3:

for (var n = 1; n < 30; n++)
{
 
        var clip = new karta();
        clip.x = 400;
        clip.y = 300;
        clip.rotation = Math.random() * 360;
 
        clip.addEventListener(MouseEvent.ROLL_OUT, qwe111);
        function qwe111(event:MouseEvent):void
        {
                var targetClip:MovieClip = e.target as MovieClip
                targetClip.gotoAndPlay(7);
        }
 
        clip.addEventListener(MouseEvent.ROLL_OVER, qwe222);
        function qwe222(event:MouseEvent):void
        {
                var targetClip:MovieClip = e.target as MovieClip
                targetClip.gotoAndPlay(1);
                if (targetClip.parent) targetClip.parent.addChild(targetClip);
        }
 
        clip.addEventListener(MouseEvent.CLICK, qwe333);
        function qwe333(event:MouseEvent):void
        {
                var targetClip:MovieClip = e.target as MovieClip
                if (targetClip.parent) targetClip.parent.removeChild(targetClip);
        }
 
        addChild(clip);
 
}


infbyte 14.07.2014 00:24

что-то не хочет.
ругается на
Цитата:

Монтажный кадр 1, Layer 'карточки', Frame 12, Line 12, Column 30 1120: Access of undefined property e.

samana 14.07.2014 00:28

А, то я по-привычке написал. Замените все e на event или наоборот.
ps. там где e.target

infbyte 19.07.2014 20:03

создал карточки , сделал кнопку "перейти в начало игры"
после перехода, эти карточки поверх самой игры.
как уничтожить все карточки new karta(); , которые мы создавали?
хелп плз


Нашел в инете инфу, что вот так но не работает.


Цитата:

if(contains(karta)){removeChild(karta);}

samana 19.07.2014 20:50

Вообще конечно нужно было бы при создании карт поместить их все в массив. Тогда в любой момент, карты полностью в вашем распоряжении, делайте с ними что хотите, хоть удаляйте.


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

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