Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   Flex (http://www.flasher.ru/forum/forumdisplay.php?f=84)
-   -   1026: Функции конструктора должны быть методами экземпляра (http://www.flasher.ru/forum/showthread.php?t=147878)

ALEX666 16.12.2010 13:03

1026: Функции конструктора должны быть методами экземпляра
 
Здравствуйте, знакомлюсь с Flex Builder 3 и сталкиваюсь с проблемами...Делаю пример: создала Flex проект, и в Application указала applicationComplete="Clickometer.main()". Класс AS подсчитывает количество кликов по кнопке и выводит их в таблицу с указанием временного интервала. Это работает, но:
1) выводится ошибка:1026: Функции конструктора должны быть методами экземпляра.
2) trace ничего не выводит в консоль!!
3) когда создала новый проект, скопировав туда код из этого, то вообще ничего не работает и выдаёт эту же ошибку...
4) не совсем понятно, почему там пишется var mxmlApp:Application = Application(....), а не var mxmlApp:Application = new Application(...)
А вот as-файл:
Код AS3:

package
{
        import flash.events.*;
        import flash.utils.*;
 
 
 
        import mx.containers.Grid;
        import mx.controls.Button;
        import mx.controls.DataGrid;
        import mx.core.Application;
 
        public class Clickometer
        {
                private static  var lastClickTime:int = 0;
                private static  var numClicks:int = 0;
                private static  var grid:DataGrid= new DataGrid();
                private static  var button:Button=new Button();
 
                public static function main():void
                {
 
                        button.label = "Click Quickly!";
                        button.addEventListener(MouseEvent.CLICK, clickListener);
                        grid.dataProvider = new Array();
                        var mxmlApp:Application = Application(Application.application);
                        mxmlApp.addChild(button);
                        mxmlApp.addChild(grid);
                        trace("hi!!");
                }
 
                private static function  clickListener(e:MouseEvent):void
                {
                        var now:int = getTimer();
                        var elapsed:int = now - lastClickTime;
                        lastClickTime = now;
                        numClicks++;
                        trace("hi!!");
                        grid.dataProvider.addItem({"Clicks": numClicks, "Time (ms)": elapsed});
                }
 
        }
}

Пожалуйста, помогите кто-нибудь...:(

GBee 16.12.2010 13:36

1) Конструктор не может быть статичным.
2) Метода main() у вас нет.
3) Вы вообще ничего не читали перед написанием кода?

ALEX666 16.12.2010 13:50

Это пример из книги, насчёт метода main() - даже не знаю, как так вышло, самой смешно, тем более, что вначале даж всё работало, а значит изначально написала правильно, просто потом видимо зачем-то исправила, хотя даж этого не помню..мистика какая-то...Теперь ошибок нет..))
Но проблема с trace осталась не решена...

GBee 16.12.2010 14:32

trace работает в дебаге

ALEX666 16.12.2010 14:36

увы, в дебаге тож ничего не появляется....


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

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