Comunidad de diseño web y desarrollo en internet online

crear objetos de forma dinamica

Citar            
MensajeEscrito el 18 Jul 2006 11:58 am
buenas compañer@s programador@s y diseñador@s
alguien tiene o sabe donde puedo encontrar un manual en condiciones (preferiblemente en español) sobre la sintaxis exacta para crear objetos de forma dinamica, como cajas de texto, botones y tal?.
encuentro ejemplos, pero no encuentro un manual en condiciones.

para ser mas concreto, ahora que logre comunicar el mysql-php con el flash, estoy haciendo un *.fla que pase el nombre de la base de datos y la tabla que consulta y esta devuelve el resultado de la consulta y ahora quiero que mi *.fla me construya una especie de tabla formada por una cabecera con los nombres de los campos y campos de texto alineados bajo ella con los resultados de la susodicha consulta..., pero claro, tienen que estar creados dinamicamente y no se hacerlo....que vergüenza... :oops: ojala alguno me podais ayudar
muchos saludos a todos y pasadlo bien

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 18 Jul 2006 12:38 pm
Hola, presionando F1 en flash puedes ir a
Aprendizaje de ActionScript 2.0 en Flash
Utilización de texto y cadenas > Campos de texto > Asignación de texto a un campo de texto durante la ejecución

Para asignar texto a un campo de texto durante la ejecución:
puede crear un campo de texto con código ActionScript y luego asignarle texto. Escriba el siguiente código ActionScript en el fotograma 1 de la línea de tiempo principal:

Código :

this.createTextField("headline_txt", this.getNextHighestDepth(), 100, 100, 300, 20);
headline_txt.text = "New articles available on Developer Center";

Este código crea un nuevo campo de texto con el nombre de instancia headline_txt. El campo de texto se crea en la siguiente profundidad superior disponible, en las coordenadas x e y 100, 100, con una anchura de 200 píxeles y una altura de 20 píxeles. Al probar el archivo SWF (Control > Probar película), aparece el texto "New articles available on Developer Center" en el escenario.

De todas maneras existe una mejor forma de hacer esto, puedes crear un objeto movieClip que en su interior tenga campos de textos dinámicos cada uno de ellos con un nombre de instancia (y además, entre las propiedades del movieClip este tildado "Exportar para actionScript). Y en tiempo de ejecución crear instancias del objeto contenedor de la siguiente manera:

Código :

attachMovie("mcContenido", "mcNota"+i, getNextHighestDepth() , {_x:10, _y:canAlto});

luego puedes incorporar las variables de texto en ese objeto contenedor...

Código :

_root["mcNota"+i].txtTitulo.text = result[i][1];

Si no tienes mucha experiencia en actionscript comienza con lo primero, si sabes algo mas puedes usar la segunda opción que es mucho mejor.

Saludos.

Por micheloud

341 de clabLevel



 

Misiones, Argentina

firefox
Citar            
MensajeEscrito el 18 Jul 2006 01:47 pm
muchisimas gracias
lo cierto es que soy MUY principiante de actionScript, llevo 2 meses, asi que me decantare por el primer metodo. en cuanto a lo del manual de ayuda del actionScript, empece con el flash haciendo sus tutoriales y tal, pero cuando fui a emplear el objeto loadVars para bases de datos mysql no consegui usar adecuadamente la ayuda y desde entonces me desanime un poco con ella. debo retomarla :) gracias por tu ayuda y tus consejos
atentamente
maije

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 18 Jul 2006 02:12 pm
una cosa mas, una duda sobre etas lineas:

for (var j:Number=0;j<this.num_filas;j++){
for (var i:Number=0;i<this.num_columnas;i++){
this.createTextField("txt"+j+i, this.getNextHighestDepth(), eX, eY, 200, 20);
////////esta linea es la que falla//////////////////////////
["txt"+j+i]text = "New articles available on Developer Center";
////////////////////////////////////////////////////////
//texto.htmlText+="campo"+j+"-"+i+": "+this["campo"+j+"-"+i];
}
texto.htmlText+="<br>";
}

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 18 Jul 2006 03:04 pm
["txt"+j+i]text
debe ser:

Código :

this["txt"+j+i].text 
ó
_root["txt"+j+i].text 


Saludos...

Por micheloud

341 de clabLevel



 

Misiones, Argentina

firefox
Citar            
MensajeEscrito el 18 Jul 2006 05:55 pm
muchisimas gracias de nuevo
por cierto, tiene muy buena pinta lo de phpobject, continua con el buen trabajo y mucha animo

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox
Citar            
MensajeEscrito el 18 Jul 2006 07:03 pm
hola compañeros, aqui os pego el codigo *.fla funcionando ya correctamente, probablemente sea MUY optimizable, pero ya se sabe que cuando uno empieza con un lenguaje y no lo controla nada, con que te funcione te das con un canto en los dientes...:lol:

var archivoPHP:LoadVars = new LoadVars();
archivoPHP.bbdd="xxx";
archivoPHP.tabla="xxx";
//la url puede ser relativa si estas ejecutando el script dentro de tu servidor pero para estar seguros,
//usa absoluta, del estilo "http://localhost/carpeta/archivo.php" por si acaso ;)
archivoPHP.sendAndLoad("url/archivo.php",archivoPHP,"POST");
_root.eX_ini=50;
_root.eY=50;
_root.depth=0;
archivoPHP.onLoad = function (exito:Boolean){
if (exito){
for (var j:Number=0;j<this.num_filas;j++){
_root.eX=_root.eX_ini;
for (var i:Number=0;i<this.num_columnas;i++){
_root.createTextField("txt"+j+i, _root.depth, _root.eX, _root.eY, 200, 20);
_root["txt"+j+i].text = this["campo"+j+"-"+i];
_root.eX+=80;
_root.depth++;
}
_root.eY+=20;
}
} else
trace("error al cargar el script php");
}

aqui ahora faltaria el php, pero es una tonteria, solo hacer una consulta (relizar la conexion a la base de datos que le hemos pasado: $_POST["bbdd"] con tu usuario y tu contraseña y haciendo la consulta a la tabla que le digamos: $_POST["tabla"]) luego la devolvemos al flash (echo utf8_encode($respuesta);) y ya esta todo:

<?php
$HOST = "localhost";
$USER = "xxx";
$PASS = "xxx";
$DATABASE = $_POST['bbdd'];
$conex = mysql_connect($HOST, $USER, $PASS);
mysql_select_db($DATABASE, $conex);
$sql = "select * from ".$_POST['tabla'];
$result = mysql_query($sql);
$i=0;
//con esto averiguamos cuantas columnas tiene la tabla que nos han pasado
$cons="desc ".$_POST['tabla'];
$res=mysql_query($cons);
$num_columnas=mysql_num_rows($res);
$respuesta="&num_columnas=".mysql_num_rows($res);
//con esto averiguaremos cuantas filas tiene insertadas la tabla correspondiente
$cons="select count(*) from ".$_POST['tabla'];
$res=mysql_query($cons);
list($aux)=mysql_fetch_row($res);
echo "<p>".$aux."</p>";
$respuesta.="&num_filas=".$aux;
mysql_close();
$j=0;
while ($row = mysql_fetch_array($result)){
for ($i=0;$i<$num_columnas;$i++)
{
$respuesta.= "&campo$j-$i=".$row[$i];
}
$j++;
}
$respuesta.="&";
echo utf8_encode($respuesta);
?>

animo a todos los que empiezan y tambien a los que ya saben, para que no se cansen de aprender cada dia cosas nuevas. con este trabajo nunca te faltaran manuales por estudiar o por escribir :wink:

Por maije

Claber

104 de clabLevel



Genero:Masculino  

Valladolid

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.