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

JekelSkaz 25.06.2010 05:47

вызов главной функции
 
реально сделать такое действие? сейчас ошибку выводит:

...engine.as, Line 15 1067: Implicit coercion of a value of type Class to an unrelated type Function.

Код AS3:

package lib{
        //подключение библиотек
        import flash.display.*;
        import flash.events.*;
        //Листинг программы
        public class engine extends MovieClip{
                public function engine(){
                        stage.addEventListener(MouseEvent.MOUSE_DOWN, addkrug);
                }
                function addkrug(e:MouseEvent):void {
                        var newCircle:krug = new krug();
                        this.addChild(newCircle);
                          newCircle.x = mouseX;
                        newCircle.y = mouseY;
                        newCircle.addEventListener(Event.COMPLETE, engine);
                        // ну или так engine();
                }
        }
}

ну или как из addkrug() вызвать ее же...повторно...

KiL33 25.06.2010 06:55

Конструктор вызывается единожды после компиляции проекта и обратиться к нему как к методу нельзя.

Возможно вам нужно сделать так.
Код AS3:

//CONSTRUCTOR
public function engine() {
        addEventListener(Event.ADDED_TO_STAGE, init)
}
private function init(e:Event):void {
          stage.addEventListener(MouseEvent.MOUSE_DOWN, addkrug)
}


JekelSkaz 25.06.2010 11:35

та ладно, полюбому можно как-то нормально это делать....неужели разработчики тупее явоскриптовских)

KiL33 25.06.2010 11:44

Вы что в целом хотите сделать?

JekelSkaz 25.06.2010 11:48

ну например чтобы до того момента пока нажата кнопка мыши - newCircle добавлялись....зациклить это дело...

KiL33 25.06.2010 11:58

и зачем вам для этого обращаться к конструктору?

Можете воспользоваться ENTER_FRAME

Нажали на кнопку, вызвали метод в котором
Код AS3:

addEventListener(Event.ENTER_FRAME, enterFrameFunc);

в методе enterFrameFunc пишите свой алгоритм по которому объекты будут добавляться.

Отпустили кнопку вызвали метод в котором
Код AS3:

removeEventListener(Event.ENTER_FRAME, enterFrameFunc);

остановили добавление объектов.

JekelSkaz 25.06.2010 14:06

хм, я еще не разобрался толком....спасибо что помогаете) попробую ENTER_FRAME

alexberkut 25.06.2010 14:44

1. Ты не можешь использовать класс как функцию (заметь ты не конструктор пытаешься передать, а класс).
2. если же ты и пользуешь
Код AS3:

newCircle.addEventListener(Event.COMPLETE, ...)

то позаботься о том чтобы функция-листенер принимала 1 параметр:
Код AS3:

function (e:Event):void {}



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

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