Форум Flasher.ru

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

MIHAnik 02.08.2011 17:47

Ошибка 1007 объект не конструктор
 
в файле .fla класс GlobalPackege указан как главный.

Пакет в котором он распологается имеет код.

Код AS3:

package { 
        import flash.display.Sprite;
        public class GlobalPackege extends Sprite {
                public var ControlsCheck
                public var Controls
                public var general_container
                public function GlobalPackege() {
                        general_container=new Sprite();
                        stage.addChildAt(general_container,0);
 
                        Controls = new Controls(this)                               
                }
        }
}

После запуска вылезает ошибка.

Код:

TypeError: Error #1007: Попытка реализации в объекте, который не является конструктором.
        at GlobalPackege()

Посоветуйте чейндж кода пжалст.

Aquahawk 02.08.2011 17:53

Controls это переменная. Тип вы ей не задали, и пытаетесь из неё что-то создать и в неё же записать. Естественно это не работает.

tsarapkabel 02.08.2011 17:55

Код AS3:

package  {
 
        import flash.display.Sprite;
 
        public class GlobalPackege extends Sprite {
                public var controlsCheck:ControlsCheck;
                public var controls:Controls;
                public var general_container:Sprite;
 
                public function GlobalPackege() {
                        general_container = new Sprite();
                        stage.addChildAt(general_container,0);
                        Controls = new Controls(this);                               
                }
 
        }
 
}

Не надо переменные называть также как классы. Типизацию не забываем. Ну и ';' для полноты картины.

MIHAnik 02.08.2011 17:58

Смотрю в пример один, там тож так реализованно, у меня есть файл Controls.as. Мне нужно как то сослаться на него в этом случае?

tsarapkabel 02.08.2011 18:04

import если он в другой папке

carrotoff 02.08.2011 18:08

и еще для общего развития: мне всё-таки что-то подсказывает, что правильнее будет не GlobalPackege, а GlobalPackage, ну если, конечно, название вашего класса не несет более таинственный смысл, который я не смог уловить.

MIHAnik 02.08.2011 18:50

carrotoff, ладно ладно учту. Опечататься уже нельзя.
tsarapkabel, нет в тойже папке. Что делать с ошибкой? подскажи.

goodguy 02.08.2011 18:58

Что за класс Controls? Какие у него параметры конструктора?

MIHAnik 02.08.2011 19:06

goodguy,Вот его код.

Код AS3:

package
{
        import flash.display.Sprite;
        import flash.events.*
        import flash.text.TextField;
 
        dynamic public class Controls extends Sprite
        {
                private var isW:Boolean = false; // 87
                private var isA:Boolean = false; // 65
                private var isS:Boolean = false; // 83
                private var isD:Boolean = false; // 68
 
                public function Controls(GlobPak)
                {
                        stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
                        stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
                        stage.addEventListener(MouseEvent.MOUSE_DOWN, Messege);
                }
                private function Messege(){
                        trace("input_MOUSE_DOWN")
                        GlobPak.ControlsCheck=1
                }
                private function onKeyDown(event:KeyboardEvent):void
                {
                        trace("input")
                        if (event.keyCode == 87)
                        {
                                isW = true;
                        }
                        else if (event.keyCode == 65)
                        {
                                isA = true;
                        }
                        else if (event.keyCode == 83)
                        {
                                isS = true;
                        }
                        else if (event.keyCode == 68)
                        {
                                isD = true;
                        }
 
                        if (isA && isS && isD)
                        {
                                trace("You press A, S, D");
                        }
                        else if (isA && isS)
                        {
                                trace("You press A and S");
                        }
 
                }
 
                private function onKeyUp(event:KeyboardEvent):void
                {
                        if (event.keyCode == 87)
                        {
                                isW = false;
                        }
                        else if (event.keyCode == 65)
                        {
                                isA = false;
                        }
                        else if (event.keyCode == 83)
                        {
                                isS = false;
                        }
                        else if (event.keyCode == 68)
                        {
                                isD = false;
                        }
                }
        }
}


in4core 02.08.2011 19:25

Код AS3:

public function Controls(GlobPak)
                {
                        stage.addEventListener(KeyboardEvent.KEY_DOWN, onKeyDown);
                        stage.addEventListener(KeyboardEvent.KEY_UP, onKeyUp);
                        stage.addEventListener(MouseEvent.MOUSE_DOWN, Messege);
                }

И нафига казе боян? Зачем передача чего либо в конструктор когда этим не пользуемся???! Однако потом фиг знает откуда начинаем пользоваться!! Ужас, читайте Муки , и вообще основы программирования! Вы видимо не понимаете, что у вас вообще происходит - а копипаст - это не для программеров
Код AS3:

private var _gp:SomeType;
public function Controls(gp:SomeType)
                {
                        this._gp = gp;
 
                }
private function showMessege(){
                        trace("input_MOUSE_DOWN")
                        _gp.ControlsCheck=1
                }



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

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