hola amigos a ver si alguno se atreve a resolver este problemilla que me esta rompiendo la cabeza XD
primero una explicación sencilla de lo que estoy realizando necesito crear una funcion a través de xml esto lo va hacer el usuario y el programa se encargara de convertirlo en funcion u objeto dependiendo de los parámetros ejemplo
Código PHP:
var miXML:XML=<body>
<TextField name="primer" text="Contenido Primero" type="input" height="300" width="400" x="100"/>
<TextField name="segundo" text="Contenido Primero" type="input" height="300" width="400" y="200"/>
</body>;
var ConteObj:Array=new Array
for (var i:Number=0; i<miXML.child('TextField').length(); i++) {
var obj=Atribu(miXML.child('TextField')[i]);
addChild(obj);
ConteObj[obj.name]=obj
}
function Atribu(chil:XML):DisplayObject {
var m:XML =chil;
var t=this[String(chil.TextField.@name)];
t=new TextField();
for (var k=0;k<m.attributes().length(); k++) {
var tis=String(m.attributes()[k].name());
t[tis]=m.attributes()[k];
}
return t;
}
este código crear dos TextField y toma los valores desde el xml y los mete en los atributos del objeto en este caso un TextField
espero que hasta aquí me entiendan porque la cosa se complica XDXD
siguiendo en mismo procedimiento puedo crear funciones por ejemplo de esta forma
Código PHP:
var miXML:XML=<body>
<TextField name="primer" text="Contenido Primero" type="input" height="300" width="400" x="100"/>
<TextField name="segundo" text="Contenido Primero" type="input" height="300" width="400" y="200"/>
<Function name="mover" />
</body>;
var ConteObj:Array=new Array
for (var i:Number=0; i<miXML.child('TextField').length(); i++) {
var obj=Atribu(miXML.child('TextField')[i]);
addChild(obj);
ConteObj[obj.name]=obj
}
var nf:Object=function (nameObj:String, ...args){
var ob=ConteObj[nameObj]
for (var j:uint = 0; j < args.length; j++) {
ob[args[j]]=args[j+1];
j++
}
}
this[String(miXML.Function.@name)]=nf
this['mover']("primer","text","hola mundo");
function Atribu(chil:XML):DisplayObject {
var m:XML =chil;
var t=this[String(chil.TextField.@name)];
t=new TextField();
for (var k=0;k<m.attributes().length(); k++) {
var tis=String(m.attributes()[k].name());
t[tis]=m.attributes()[k];
}
return t;
}
por ejemplo esto crea un funcion simple que se llama mover y cambia el texto del primer TextField por hola mundo
a qui es lo complicado no se me ocurre nada para la creación de sentencias de tipo if independientemente de lo que el cliente escriba por ejemplo una sentencia seria esto
if(ConteObj["primer"].text=='hola mundo"){
gotoAndPlay(2)
}
lo malo es que para cada funcion sera distinta y no siempre seria comparativa y como ya dige no lo vería yo sino el cliente
lo unico que se me a ocurrido es crear algo parecido a los constructores
<if FuncionAlquecoresponde="mover" dato="xxx" tipoComparacion="==" dato2="xxx" Sentencia="funcionxxx()" >
pero esto no resulta ya que el == o < > me los lee como String asi que no se pude utilizar estos operadores, ya estoy quemado no se me ocurre nada para ver como meto las sentencias dentro de las funciones
a ver si alguno puede hacerlo o a visto algo por el estilo estaría muy agradecido