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

olejan1991 01.04.2013 20:21

Удаление объекта
 
Вопрос в комментариях в классе button

Основной класс
Код AS3:

package
{
        import flash.display.Sprite;
        import flash.events.MouseEvent;
 
        import map.Button;
 
        public class VirtualMap4 extends Sprite
        {
 
                private var cell:Sprite;
                private var button:Button = new Button();
 
                public function VirtualMap4()
                {
                        displayCell();               
                        displayButton();
                }
 
// Отображаем квадрат
                public function displayCell():void
                {
                        cell = new Sprite();
                        var x:uint = 4;
                        var y:uint = 4;
                        cell.graphics.lineStyle(1, 0x000000);
                        cell.graphics.drawRect(x, y, 100, 100);
                        addChild(cell);
                }
 
// Отображаем кнопку
                public function displayButton():void
                {
                        button.displayButton();
                        addChild(button);                       
                }
 
 
 
 
        }
}


класс кнопки
Код AS3:

package map
{
        import flash.display.Sprite;
        import flash.events.MouseEvent;
 
        public class Button extends Sprite
        {
                private var button:Sprite;
 
                public function Button()
                {
                        super();
                }
 
                public function displayButton():void
                {
                        button = new Sprite();
                        var x:uint = 4;
                        var y:uint = 110;
                        button.graphics.beginFill(0xFFFFFF, 1.0);
                        button.graphics.lineStyle(1, 0x000000);
                        button.graphics.drawRect(x, y, 20, 20);
                        button.buttonMode = true;
                        addChild(button);
//вешаем событие на кнопку
                        button.addEventListener(MouseEvent.CLICK, buttonAction);
                }
 
//слушатель события
                public function buttonAction(e:MouseEvent):void
                {
                        trace("remove");
//как при клике удалить квадрат со сцены?
                        removeChild();
                }
        }
}

Если это делать в основном классе - все понятно, а вот если операция удаления должна происходить в другом классе - я в тупике.

gagaga 01.04.2013 21:10

событие посылайте да и всё

olejan1991 01.04.2013 21:25

ответ не понятен

caseyryan 01.04.2013 21:29

Цитата:

ответ не понятен
Собственно, как и вопрос.

GBee 01.04.2013 22:26

Код AS3:

public function displayButton():void
{
        button.displayButton();
        addChild(button);                       
        button.addEventListener(MouseEvent.CLICK, buttonAction);
}
 
public function buttonAction(e:MouseEvent):void
{
        trace("remove");
        removeChild(button);
}

Или из самой кнопки

Код AS3:

parent.removeChild(this);


olejan1991 01.04.2013 22:52

так удаляется кнопка, а нужно удалять большой квадрат

GBee 02.04.2013 00:46

а! тогда невыполнимо.

olejan1991 02.04.2013 00:58

тогда не могу понять как же удалить этот объект?

GBee 02.04.2013 01:05

olejan1991, шучу я, можно конечно. Ну подумайте головой. Просто не до всех доходит , что для вас БОЛЬШОЙ КВАДРАТ. Если вы хотите удалить cell, то в классе кнопки этого точно делать не стоит. Сделайте в майне подпись на клик кнопки и по клику удаляйте.

Код AS3:

public function displayButton():void
{
        button.displayButton();
        addChild(button);                       
        button.addEventListener(MouseEvent.CLICK, buttonAction);
}
 
public function buttonAction(e:MouseEvent):void
{
        trace("remove");
        removeChild(cell);
}


olejan1991 02.04.2013 02:11

оно та все красиво звучит, но вот как в майне подписаться на событие, которое происходит в классе button?


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

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