Форум 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)
-   -   eval. создание объектов класса по строке-имени (http://www.flasher.ru/forum/showthread.php?t=99311)

Pecher 02.08.2007 16:30

eval. создание объектов класса по строке-имени
 
Граждане! Подскажите, как можно с помощью eval создать объект класса по строке. То есть, например, есть у нас класс Class. Я хочу создать его экземпляр как-то вроде
Код:

var obj = new eval("Class")();
Так не проходит. Может кто-нить помочь?

etc 02.08.2007 16:42

Код:

Definition = eval('Class');
obj = new Definition();


Pecher 02.08.2007 17:25

Большое спасибо, помогло!
Интересно, почему мой вариант не прокатывал?

etc 02.08.2007 17:36

Синтаксически неверно.

Pecher 02.08.2007 17:45

Что именно неверно? :)

CrazyFlasher 02.08.2007 17:52

а разве не проще сделать:
Код:

var obj:Class = new Class();
зачем этот eval сдался??

etc 02.08.2007 17:57

Скобки ещё нужно ставить. Иначе компилятор выполнит код последовательно, сначала new, а на стеке всякий мусор лежит.

Код:

trace(new (eval('MovieClipLoader'))());
Вообще, eval — рудимент прошлого, слава богу, в AS3 его нет.

Pecher 02.08.2007 17:59

приоритет... во блин :)
а нужен eval для того, чтобы можно было к разным классам обращаться, а не только к Class

CrazyFlasher 02.08.2007 18:02

Цитата:

а нужен eval для того, чтобы можно было к разным классам обращаться, а не только к Class
эмм...можно какой-нить примерчик посмотреть?

iNils 02.08.2007 18:03

Цитата:

Сообщение от Pecher
приоритет... во блин :)
а нужен eval для того, чтобы можно было к разным классам обращаться, а не только к Class

А что с аргументами класса делать будете?
И использовать тогда уже такой способ
Код:

function classCreate (nameClass:Function) {
        return new nameClass ();
}



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

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