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

soloweb 01.07.2008 17:24

динамическое выделение памяти
 
Прошу помочь с вопросом.
Имеетя переменная
Код:

var cls:String = "class1";
Надо выделить в переменную
Код:

var testClass:* = new cls ;
где cls это строковая переменная

Тот вариант который я написал выше не работает!
В Документации пошарился но не нашел что-то похожее (((
Заране спасибо!

ign 01.07.2008 17:34

Поиск по запросу getDefinitionByName

etc 01.07.2008 17:55

soloweb, а какое отношение название темы имеет к вопросу?

soloweb 01.07.2008 18:15

__etc:
Ну может я ошибаюсь но кажется оператор new занимается динамическим выделением памяти, а так как вопрос имеет отношение к нему то собственно тема вопроса )))

Может я не прав, тогда попправьте меня )))

soloweb 01.07.2008 18:40

Вообщем что-то не получилось у меня (((
Код:

var cls:Class = getDefinitionByName("Products") as Class;
var products:* = new cls();

Вот ошибка:
ReferenceError: Error #1065: Variable Products is not defined.

etc 01.07.2008 19:01

Цитата:

Сообщение от soloweb (Сообщение 749293)
Вообщем что-то не получилось у меня (((
Код:

var cls:Class = getDefinitionByName("Products") as Class;
var products:* = new cls();

Вот ошибка:
ReferenceError: Error #1065: Variable Products is not defined.

Значит класс Products отсутствует в проекте и ни разу не упоминается.

soloweb 01.07.2008 19:18

Да вроде все подгружается
Тогда почему
Код:

var products:* = new Products();
Работает ?

etc 01.07.2008 19:23

А как компилятор по строковому имени узнает, что данный класс нужно скомпилировать тоже? Напишите где-нибудь просто название класса не в строке и все.

soloweb 01.07.2008 19:31

__etc
Я не понимаю !
Еще раз:
Имеется AS3 + Flex Builder 3 (IDE + Eclipse 3.3)
Далее Имеется класс который находится в папке libraries/Products.as
Соответсвенно в главный класс импортируется методом
Код:

import libraries.*;
Также импортируется вся нужная библиотека и в том числе
Код:

import flash.display.Sprite;
import flash.utils.*;

Теперь в самом главном классе в констукторе прямо ради теста приписанно вот
Код:

var cls:Class = getDefinitionByName("Products") as Class;
var products:Products = new cls();

На что он мне и ругается

Если делаю так
Код:

var cls:Class = Products;
var products:Products = new cls();

То все ок.

Вот ! Если можеш то помоги прямо примером ато я тебя не совсем понял
Заранее спасибо! )))

etc 01.07.2008 19:35

После всех import напишите строчку:

Код:

Products;
и все.


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

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