vamos a probar un fichero que se llame ara.as-->
Código :
package clases{
public dynamic class ara extends Array{
public dynamic function ara (){
var ar01:Array=new Array();var ar02:Array=new Array();var ar03:Array=new Array();
ar01=['Courier New','Verdana','Tahoma','Times New Roman','Lucida Sans','Arial','Georgia'];
ar02=['q','w','e','r','t','y','u','i','o','p','a','s','d','f','g','h','j','k','z','x','c','v','b','n','m','1','2','3','6','5','4','7','8','9','0'];
ar03=['0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'];
var numa1:int = Math.floor(Math.random()*7); ///font
var numa2:int = Math.floor(Math.random()*2); ///cursiva
var numa3:int = Math.floor(Math.random()*2); ///negreta
var numa5:int = (Math.floor(Math.random()*120)-60); /// rotacio
var numa6:int = (Math.floor(Math.random()*5)+15); ///size
var numa7:int = (Math.floor(Math.random()*(ar02.length)));
var stng:String='';
for (var n1:int=0;n1<6;n1++){
var numa8:int = (Math.floor(Math.random()*(ar03.length)));
stng=stng+ar03[numa8];
}
stng='0x'+stng;
this['arf']=new Array;
this['arf']=[numa1,numa2,numa3,numa5,numa6,ar02[numa7],stng];
}
}}
las caracteristicas de cada letra, tambien hay que tener en cuenta que la funcion sea dinamica
voy a probar con una lista de seis letras me sale mas o menos esto
Código :
var ar01z:String=new String();
var tfta:tft=new tft();
var tftb:TextFormat=new TextFormat();
tftb=tfta.tft2;
var tfda:tfdd=new tfdd(tf.tft2,7,'captcha',6);
tfda.x=200;tfda.y=10;
var spr0a:Sprite=new Sprite();
var spr1a:Sprite=new Sprite();
for(var t:int=0;t<6;t++){
this['uto'+t]=new ara();
this['arx'+t]=this['uto'+t].arf;
this['tftz'+t]=new TextFormat;
if(this['arx'+t][0]==0){var fuente00:fonto1=new fonto1();
this['tftz'+t].font=fuente00.fontName;}
if(this['arx'+t][0]==1){var fuente11:fonto2=new fonto2();
this['tftz'+t].font=fuente11.fontName;}
if(this['arx'+t][0]==2){var fuente22:fonto3=new fonto3();
this['tftz'+t].font=fuente22.fontName;}
if(this['arx'+t][0]==3){var fuente33:fonto4=new fonto4();
this['tftz'+t].font=fuente33.fontName;}
if(this['arx'+t][0]==4){var fuente44:fonto5=new fonto5();
this['tftz'+t].font=fuente44.fontName;}
if(this['arx'+t][0]==5){var fuente55:fonto6=new fonto6();
this['tftz'+t].font=fuente55.fontName;}
if(this['arx'+t][0]==6){var fuente66:fonto7=new fonto7();
this['tftz'+t].font=fuente66.fontName;}
if(this['arx'+t][1]==0){this['tftz'+t].italic=false;}
if(this['arx'+t][1]==1){this['tftz'+t].italic=true;}
if(this['arx'+t][2]==0){this['tftz'+t].bold=false;}
if(this['arx'+t][2]==1){this['tftz'+t].bold=true;}
this['tftz'+t].color=this['arx'+t][6];
this['tftz'+t].size=this['arx'+t][4];
this['tfdz'+t]=new TextField;this['tfdz'+t].defaultTextFormat = this['tftz'+t];
this['tfdz'+t].text=this['arx'+t][5];
this['tfdz'+t].embedFonts = true;///importante sino no giran las letras
this['spr00x'+t]=new Sprite();
this['spr00x'+t].addChild(this['tfdz'+t]);
this['tfdz'+t].selectable=false;
this['spr00x'+t].rotation=this['arx'+t][3];
this['spr00x'+t].x=10+(30*t);
this['spr00x'+t].y=15;ar01z=ar01z+this['arx'+t][5];
spr0a.addChild(this['spr00x'+t]);}
spr0a.addChild(tfda);
bien aki luego tendria que poner un boton que me actualizase el captcha, el problema es que el boton asociado a una funcion cuando le hago click, y esa funcion es exactamente el mismo codigo de arriba, hay alguna manera de hacer un reset de eso y volver a ejecutar el codigo de arriba sin tener que volver a escribir todo el codigo de nuevo ?
la opcion que veo es-->
Código :
spr0a.addChild(tfda);
var str03:String=new String();
str03='./a4f6sdfgsdg6/87dfsffds.png'; //imagen boton
var loadima:Loader=new Loader();
var urlima:URLRequest=new URLRequest(str03);
loadima.load(urlima);
spr1a.addChild(loadima);
spr1a.x=300;spr1a.y=20;
spr1a.scaleX=0.30;
spr1a.scaleY=0.30;
spr1a.buttonMode=true;
spr0a.addChild(spr1a);
spr0a.y=500;
spr0a.x=50;
addChild(spr0a);
spr1a.addEventListener(MouseEvent.CLICK,ffaz);
dynamic function ffaz (evt:MouseEvent){ar01z='';
for(var t:int=0;t<6;t++){spr0a.removeChild(this['spr00x'+t]);
this['uto'+t]=new ara();
this['arx'+t]=this['uto'+t].arf;
this['tftz'+t]=new TextFormat;
if(this['arx'+t][0]==0){var fuente00:fonto1=new fonto1();
this['tftz'+t].font=fuente00.fontName;}
if(this['arx'+t][0]==1){var fuente11:fonto2=new fonto2();
this['tftz'+t].font=fuente11.fontName;}
if(this['arx'+t][0]==2){var fuente22:fonto3=new fonto3();
this['tftz'+t].font=fuente22.fontName;}
if(this['arx'+t][0]==3){var fuente33:fonto4=new fonto4();
this['tftz'+t].font=fuente33.fontName;}
if(this['arx'+t][0]==4){var fuente44:fonto5=new fonto5();
this['tftz'+t].font=fuente44.fontName;}
if(this['arx'+t][0]==5){var fuente55:fonto6=new fonto6();
this['tftz'+t].font=fuente55.fontName;}
if(this['arx'+t][0]==6){var fuente66:fonto7=new fonto7();
this['tftz'+t].font=fuente66.fontName;}
if(this['arx'+t][1]==0){this['tftz'+t].italic=false;}if(this['arx'+t][1]==1){this['tftz'+t].italic=true;}
if(this['arx'+t][2]==0){this['tftz'+t].bold=false;}if(this['arx'+t][2]==1){this['tftz'+t].bold=true;}
this['tftz'+t].color=this['arx'+t][6];
this['tftz'+t].size=this['arx'+t][4];
this['tfdz'+t]=new TextField;
this['tfdz'+t].defaultTextFormat = this['tftz'+t];this['tfdz'+t].text=this['arx'+t][5];
this['tfdz'+t].embedFonts = true;
this['spr00x'+t]=new Sprite();
this['spr00x'+t].addChild(this['tfdz'+t]);
this['tfdz'+t].selectable=false;
this['spr00x'+t].rotation=this['arx'+t][3];
this['spr00x'+t].x=20+(30*t);this['spr00x'+t].y=15;
ar01z=ar01z+this['arx'+t][5];
spr0a.addChild(this['spr00x'+t]);}
spr0a.addChild(tfda);
var str03:String=new String();
str03='./a4f6sdfgsdg6/87dfsffds.png';
var loadima:Loader=new Loader();
var urlima:URLRequest=new URLRequest(str03);
loadima.load(urlima);
spr1a.addChild(loadima);
spr1a.x=300;spr1a.y=20;
spr1a.scaleX=0.30;
spr1a.scaleY=0.30;
spr1a.buttonMode=true;
spr0a.addChild(spr1a);
spr0a.y=500;spr0a.x=50;
addChild(spr0a);
}
si veis es el mismo codigo el que esta dentro de la funcion ffaz, habria alguna manera de que la funcion esta no tubiera de volver a poner todo el codigo?.
Lo mismo me sucede con algunas funciones de esteganografia desde as3 con una imagen creada en php.
gracias por leereme.
