Autor Zpráva
Timy
Profil
Potřeboval bych vytvořit objekt podle předané proměnné. Nechci to pokud možno dělat přes switch/case, ale nějak takhle:

function hokusPokus(objectName:String):Car
{
	var myObject:Car;
	myObject = new objectName(argumenty);
	return myObject;
}


Akorát že s tím rozdílem, že se nevytvoří instance objectName, ale nejprve se vyhodnotí objectName a až poté se vytvoří instance objektu. Příklad volání:

hokusPokus("Ferrari");


Tento kód by měl vrátit objekt typu „Ferrari“. Jde to nějak zařídit? ActionScript 2.
embee
Profil
zkus to zabalit do [] a nebo pouzit eval(), ale covece nevim, tohle se mi moc nepozdava....
Timy
Profil
embee
Už jsem to vyřešil jinak a čistěji. Předávám už hotový objekt jako argument.
mila
Profil
Můžeš předávat constructor místo názvu třídy, tohle například funguje:
var f:Function = flash.filters.GlowFilter;
trace(f);
o = new f;
trace(o)

V tvém příkladu:
function hokusPokus(objectName:Function):Car
{
	var myObject:Car;
	myObject = new objectName(argumenty);
	return myObject;
}
hokusPokus(my.package.Ferrari);

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: