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

etc 08.10.2009 23:59

Не в строковой переменной.

sweetPepper 09.10.2009 03:20

Попробуй передавать не сам спрайтик, а прототип на него.
Код AS3:

public function f():void{
        var src:Sprite;
        ...
        createContent(str,src.prototype,....);
}
 
public function createContent(name_prod : String, src_prod : Object, money_prod : uint, gold_money : uint, loadel : uint) : void {
        var name_o : w_name_object = new w_name_object();
        name_o.setName(name_prod);
        name_o.x = w_win.x/2-100;
        name_o.y = w_win.y / 2 - 150 + (60 * loadel);
        this.addChild(name_o);
 
        var obj : Sprite = new src_prod.constructor; //в данной строке нет ошибка
        obj.x = name_o.x - 100;
        obj.y = name_o.y;
        this.addChild(obj);
}


dimarik 09.10.2009 10:43

Код AS3:

import packagepath.a_apple; a_apple;


AlexsWulf 09.10.2009 11:07

в результате сделал так
Код AS3:

class Aliases
{
*public static const APPLE:Class = o_apple;
*public static const PINEAPPLE:Class = o_pinapple;
}
*
... XML:
*
<op name="Яблоко" src="APPLE" />
<op name="Груша" src="PINEAPPLE" />
*
...
*
*
var alias:String = xml.@src;
*
var cls:Class = Aliases[alias];
*
...
*
public function createContent(name_prod : String, src_prod : Class, money_prod : uint, gold_money : uint, loadel : uint) : void {
*...
*var obj : Sprite = new src_prod();
*...
}

теперь все работает.


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

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