
Etiquetas: lineTo lineStyle beginFill
En la API de dibujo de Actionscript 2.0 no existe ninguna función para dibujar directamente un cÃrculo (en Actionscript 3.0 tenemos drawCircle()). Sin embargo, podemos dibujar cÃrculos con dos métodos diferentes.
El primero es el más intuitivo. Se trata de unir diversos puntos con lineTo() para formar el cÃrculo. Por ejemplo podemos utilizar una función como esta para crear un cÃrculo:
function circuloLine(px, py, radio, color, alfa) {
lineStyle(1,color,alfa);
beginFill(color,alfa);
moveTo(px+radio,py);
for (grados=0; grados<=360; grados++) {
x = radio*Math.cos(Math.PI/180*grados);
y = radio*Math.sin(Math.PI/180*grados);
lineTo(px+x, py+y);
}endFill();
} Como se puede ver en la función son matemáticas básicas. Unimos 360 puntos, calculando las coordenadas con seno y coseno, y forman un cÃrculo. En realidad es un polÃgono de 360 lados, pero los lados no se ven planos porque son muy pequeños. Para figuras muy grandes, se podrÃa mejorar la función utilizando curveTo() en lugar de lineTo():
function circuloCurve(px, py, radio, color, alfa) {
lineStyle(1,color,alfa);
beginFill(color,alfa);
moveTo(px+radio,py);
for (grados=0; grados<=360; grados++) {
x = radio*Math.cos(Math.PI/180*grados);
y = radio*Math.sin(Math.PI/180*grados);
curveTo(px+x,py+y,px+x,py+y);
}endFill();
} La función es la misma, pero en vez de unir los puntos por rectas, los unimos por curvas.
La tercera opción que conozco para dibujar un cÃrculo, es la más rápida e ingeniosa. Se trata de dibujar una linea muy pequeña, pero con un grosor igual al diametro que buscamos. SerÃa como "dibujar un punto muy gordo". El resultado es el más exacto de los 3, además del más eficiente.
function circuloPunto(px, py, radio, color, alpha){
lineStyle(radio*2, color,alpha);
moveTo(px,py);
lineTo(px,py + 0.15);
} 
Etiquetas: attachBitmap BitmapData loadBitmap

Etiquetas: MovieClipLoader onLoadInit onLoadComplete onLoadProgress

Etiquetas: startDrag swapDepths hitTest

Etiquetas: Object onKeyDown onKeyUp Key.getCode addListener

Etiquetas: StyleSheet htmlText load TextField createTextField
Lo primero es tener nuestro archivo CSS. Yo voy a utilizar uno sencillo:
a{
font-size:16pt;
color:#0000ff;
text-decoration:underline;
}
d{
font-size:20pt;
color:#ff0000;
}
e{
font-size:18pt;
color:#00ff00;
}
f{
font-size:14pt;
color:#ff00ff;
}
En la parte Flash, cargamos el archivo CSS, y configuramos el campo de texto para que utilice la hoja de estilos que hemos cargado:
//Creo el campo de textocreateTextField("Texto_txt",0,0,0,300,300);
//Creo las variables que van a contener el texto htmlvar txt0:String = "<d>Este serÃa del tipo d</d><br/>";
var txt1:String = "<e>Este serÃa el primer e</e><br/>";
var txt2:String = "<f>Este es del tipo f</f><br/>";
var txt3:String = "<a href = 'http://www.esedeerre.com'>Este serÃa un enlace coloreado</a>";
//Creo la variable para vargar el CSSvar loadCSS = TextField.StyleSheet = new TextField.StyleSheet();
//Cuando carguen los estilos, relleno el campo con el htmlloadCSS.onLoad = function(){
Texto_txt.html = true;
Texto_txt.styleSheet = loadCSS; Texto_txt.htmlText = txt0 + txt1 + txt2 + txt3;}//Cargo los estilosloadCSS.load("url del css");
stop();


Etiquetas: XML ignoreWhite childNodes firstChild
function RecorreInstancias(clip:MovieClip){
for(a in clip){
trace(clip[a]);
RecorreInstancias(clip[a]);
}}RecorreInstancias(_root);
Por ejemplo, si quisieramos imprimir en pantalla los nombres de todos los nodos de un XML:
function CargarXML(){
recXml = new XML();
recXml.ignoreWhite = true;
recXml.onLoad = function(exito){
if(exito){
Recorrer(this.firstChild);
}else{
trace("Error al cargar");
} }recXml.load("url del XML");
}function Recorrer(xml){
for(var a in xml.childNodes){
Recorrer(xml.childNodes[a]);
trace(xml.childNodes[a].nodeName);
}}CargarXML();