Ver Mensaje Individual
  #1 (permalink)  
Antiguo 05/05/2009, 17:01
Avatar de Lynxcraft
Lynxcraft
 
Fecha de Ingreso: noviembre-2007
Ubicación: yecla murcia
Mensajes: 1.346
Antigüedad: 17 años
Puntos: 51
como crear sentencias de tipo if en AS3

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=0i<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=0i<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 0args.lengthj++) {
        
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
__________________
Sobran las ideas cuando faltan ganas de trabajar en ellas
Lynxcraft