Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   почему не "new function()", а "function()"? (http://www.flasher.ru/forum/showthread.php?t=85572)

offlight 25.09.2006 23:35

почему не "new function()", а "function()"?
 
Люди,объясните пажалста, почему вот при этом:
Код:

MovieClip.prototype.x=new function() Void{
        trace("fhwjfhwektgjwol");
}

ничего хорошего не произойдёт, в смысле мувиклип методом х не обзаведётся? типа так надо:
Код:

MovieClip.prototype.x=function():Void{
        trace("fhwjfhwektgjwol");
}

не пойму,что за дела. Кто знает? тока не все сразу=)

AL.exe 25.09.2006 23:43

Синтаксис такой.

iNils 25.09.2006 23:54

По сути во флеше нет конструктора Function. Флеш не может динамически создавать пользовательские функции на этапе исполнения как в javascript. Иначе бы в плейер пришлось встраивать компилятор, а это отразилось бы на его размере.
И потом, где вы видели например подобную конструкцию:
Код:

test = new String () {что-то}

Nirth 26.09.2006 00:18

есть такое понятие как Литерал, и есть конструктор

Код:

//создаем строку литералом
var s:String = "a";
//создаем конструктором
var s:String = new String("a");

//создаем массив литералом
var a:Array = [1,2,3];
//создаем конструктором
var a:Array = new Array(1,2,3);

//создаем анонимную функцию, и передаем ее как ссылку "f"
var f:Function = function () {};
//создаем функцию конструктором
var f:Function = new Function();
//только толку не будет

Класс Function достался в AS от стандарта ECMA, вообще я молюсь чтобы от него отказались=)


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

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