Grazie della dritta Flep :)
ora il mio getDefinitionByName funziona correttamente.
ho scritto un classe Square.as:
Code:
package
{
import flash.display.*;
public class Square extends MovieClip
{
private var _fla:MovieClip;
public function Square(fla:MovieClip)
{
_fla=fla;
quadrato();
}
public function quadrato():void
{
var rect:Shape = new Shape();
rect.graphics.lineStyle(1);
rect.graphics.beginFill(0x0000FF, 1);
rect.graphics.drawRect(5, 5, 10, 10);
_fla.addChild(rect);
}
}
}
e una classe Circle.as:
Code:
package
{
import flash.display.*;
public class Circle extends MovieClip
{
private var _fla:MovieClip;
public function Circle(fla:MovieClip)
{
_fla=fla;
var circ:Shape = new Shape();
circ.graphics.lineStyle(1);
circ.graphics.beginFill(0xff00ff, 1);
circ.graphics.drawCircle(40, 10, 10);
_fla.addChild(circ);
}
}
}
entrambe le richiamo in una classe main che ho nominato GetDefinitionByNameExample.as
Code:
package {
import flash.display.*;
import flash.utils.*;
public class GetDefinitionByNameExample extends MovieClip {
private var container_mc:MovieClip;
private var clip:Square;
private var clip_1:Circle;
public function GetDefinitionByNameExample()
{
displayContent('Square');
displayContent('Circle');
}
private function displayContent(s:String):void
{
container_mc = new MovieClip();
addChild(container_mc);
var ClassReference:Class = getDefinitionByName(s) as Class;
var istance:MovieClip = new ClassReference(this);
/*
istance.scaleX=istance.scaleY=2;
istance.x=100;
istance.y=100;
container_mc.addChild(istance);
*/
}
}
}
Ora ho un altro difetto che nel tuo codice non c'è:
Code:
/*
istance.scaleX=istance.scaleY=2;
istance.x=100;
istance.y=100;
container_mc.addChild(istance);
*/
1) come faccio a modificare le proprietà scaleX e scaleY di "istance" dalla mia main?
2) se nelle classi Circle e Square elimino "_fla.addChild(clip);" nella mia main non riesco a vedere gli oggetti anche se vengono creati e anche se scrivo "container_mc.addChild(istance);"
Cosa sbaglio?