Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: AS3 вызов функции другого класса, принимаемой в аргументе  (Прочитано 1572 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн _XDD_

  • Автор темы
  • Участник
  • *
  • Сообщений: 108
    • Просмотр профиля
помогите, пожалуйста, кто знает AS3,
как реализовывать правильно такое(и возможно ли?)
до 5 утра убивался, а так нифига и не вышло (((






в классе Start

public function addObject(icon:DisplayObject, fnc:Function):void
        {
            icon.x = 0;
            icon.y = lastPositionY;
            lastPositionY += icon.height;
           
            centralWindow.addChild(icon);
            icon.addEventListener(MouseEvent.CLICK, fnc); //!!!!
//на переполнение проверка позже будет
        }





в классе Main
public function Main()
        {
            cap = new Sprite;
            cap.graphics.beginFill(0xFFFFFF, 0);
            cap.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
            cap.graphics.endFill();

            taskBar = new TaskBar(0, stage.stageHeight - heightTaskBar, stage.stageWidth, heightTaskBar);
            windows = new Sprite;
            start = new Start(stage.stageHeight - heightTaskBar - heightStart , stage.stageHeight - heightTaskBar);
           
            addChild(start);
            addChild(cap);
            addChild(windows);
            addChild(taskBar);
           
           
            taskBar.addObjectTaskBar(start, newIcon("start", widthIcon, heightTaskBar));
            start.deactivation();
            start.addObject(newIcon("Create window", widthIcon, heightTaskBar), newWindow);
        }




сама ф-я из класса Main

public function newWindow():void
        {
            var window:Window = new Window;
            windows.addChild(window);
            taskBar.addObjectTaskBar(window, newIcon("new window", widthIcon, heightTaskBar));
        }








если просто попытаться вызвать ф-ю передаваемую в public function addObject(icon:DisplayObject, fnc:Function):void
как fnc() , то срабатывает, а если используя событие, то не получается, выдает ошибку:
ArgumentError: Error #1063: Argument count mismatch on Main/newWindow(). Expected 0, got 1.

Пользователь решил продолжить мысль 24 Августа 2013, 09:30:29:
АРРР какой же я дурак... до 5 утра просидел с этим и только утром понял, почему эта ошибка выдается :)
прошу прощения.

не могу удалить тему, не думаю что такой дурак еще найдется :D

ф-я ведь должна принимать будет MouseEvent
« Последнее редактирование: 24 Августа 2013, 09:30:29 от _XDD_ »

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.