Ver Mensaje Individual
  #2 (permalink)  
Antiguo 01/07/2009, 10:32
Avatar de Larc
Larc
 
Fecha de Ingreso: octubre-2003
Ubicación: Mexico
Mensajes: 259
Antigüedad: 20 años, 6 meses
Puntos: 0
Respuesta: Generador de avatares en flash, es posible?

He leido mucho sobre el tema y he encontrado una solucion y he aprendido poco a poco como hacerlo...

Este es el resultado :

www.leonardosco.com/avatares

Veran que casi todo funciona y digo casi porque no funciona al 100%.

Sube la imagen
Redimenziona la imagen
Eligen el marco
Genera la imagen (pero sin marco)
Descarga la imagen.

El problema del casi es que no encontrado la manera de como genera la imagen con el marco.

tengo un fotograma que se llama "insfoto" es donde se carga la foto, en una capa arriba tengo otro fotograma que se llama "marco", pero como debo definir en mi codigo que me guarde la imagen con el marco?...

Este es mi codigo:

Código:
stop();
insbtguardar._visible=0;
import flash.net.FileReference;
var fileRef:FileReference = new FileReference();
nombrearchivo="laimagen.jpg"
aleatorioarchivo=null
function subir_archivos(){
	aleatorioarchivo=new Date()
	aleatorioarchivo=aleatorioarchivo.toString()
	if(idusuario!=0){
		var allTypes:Array = new Array();
		var imageTypes:Object = new Object();
		imageTypes.description = "Archivos de imagen (*.jpg)";
		imageTypes.extension = "*.jpg";
		allTypes.push(imageTypes);
		var listener:Object = new Object();
		listener.onSelect = function(file:FileReference):Void {
			if(Math.ceil(file.size/1024)>2000){
				_root.alertar("El archivo no puede exceder los 2MB")
			}else{
				_parent.inscargando.gotoAndStop(2)
				if(!file.upload("subir_imagen.php?destino="+nombrearchivo)) {
					_root.alertar("Error al enviar archivo")
					_parent.inscargando.gotoAndStop(1)
				}
			}
		}
		listener.onComplete = function(file:FileReference):Void {
			delete listener
			insfoto._x=insmascara._x
			insfoto._y=insmascara._y
			insfoto._xscale=100
			insfoto._yscale=100
			insfoto.loadMovie("imagenes/"+nombrearchivo+"?fecha="+aleatorioarchivo)
			_parent.inscargando.gotoAndStop(1)
		}
		listener.onHTTPError = function(file:FileReference):Void {
			_root.alertar("Error al enviar archivo - HTTPError")
			_parent.inscargando.gotoAndStop(1)
		}
		listener.onIOError = function(file:FileReference):Void {
			_root.alertar("Error al enviar archivo - IOError")
			_parent.inscargando.gotoAndStop(1)
		}
		listener.onSecurityError = function(file:FileReference, errorString:String):Void {
			_root.alertar("Error al enviar archivo - SecurityError")
			_parent.inscargando.gotoAndStop(1)
		}
		fileRef.addListener(listener);
		fileRef.browse(allTypes);
	}else{
		insfoto._x=insmascara._x
		insfoto._y=insmascara._y
		insfoto._xscale=100
		insfoto._yscale=100
		insfoto.loadMovie(nombrearchivo+"?fecha="+aleatorioarchivo)
	}
}

ancho_foto_inicio=null
alto_foto_inicio=null
function situa_flechas(){
	flechaupiz._x=insfoto._x
	flechaupiz._y=insfoto._y
	flechaupder._x=insfoto._x+(insfoto._width)
	flechaupder._y=insfoto._y
	flechadwiz._x=insfoto._x
	flechadwiz._y=insfoto._y+insfoto._height
	flechadwder._x=insfoto._x+(insfoto._width)
	flechadwder._y=insfoto._y+insfoto._height
}

flechamovida=null
x_inicio_up_iz=null
y_inicio_up_iz=null
x_inicio_up_der=null
y_inicio_up_der=null
x_inicio_dw_iz=null
y_inicio_dw_iz=null
x_inicio_dw_der=null
y_inicio_dw_der=null

function inicia_dibujo(recibo){
	flechamovida=recibo
	x_inicio_up_iz=flechaupiz._x
	y_inicio_up_iz=flechaupiz._y
	x_inicio_up_der=flechaupder._x
	y_inicio_up_der=flechaupder._y
	x_inicio_dw_iz=flechadwiz._x
	y_inicio_dw_iz=flechadwiz._y
	x_inicio_dw_der=flechadwder._x
	y_inicio_dw_der=flechadwder._y
	startDrag(flechamovida);
	flechamovida.onMouseMove=dibuja_cuadro;
}
function dibuja_cuadro(){
	objetodibujar=this._parent
	esquinas_mascara=objetodibujar.insmascara.getBounds(objetodibujar)
	
	if(flechamovida==flechaupiz){
		x_movidos=x_inicio_up_iz-flechamovida._x
		y_movidos=y_inicio_up_iz-flechamovida._y
		
		objetodibujar.flechaupder._x=x_inicio_up_der+x_movidos
		objetodibujar.flechaupder._y =flechamovida._y
		objetodibujar.flechadwiz._x=flechamovida._x
		objetodibujar.flechadwiz._y=y_inicio_dw_iz+y_movidos
		objetodibujar.flechadwder._x=x_inicio_dw_der+x_movidos
		objetodibujar.flechadwder._y =y_inicio_dw_der+y_movidos
	}
	
	if(flechamovida==flechaupder){
		x_movidos=x_inicio_up_der-flechamovida._x
		y_movidos=y_inicio_up_der-flechamovida._y

		objetodibujar.flechaupiz._x=x_inicio_up_iz+x_movidos
		objetodibujar.flechaupiz._y=flechamovida._y
		objetodibujar.flechadwiz._x=x_inicio_dw_iz+x_movidos
		objetodibujar.flechadwiz._y=y_inicio_dw_iz+y_movidos
		objetodibujar.flechadwder._x=flechamovida._x
		objetodibujar.flechadwder._y =y_inicio_dw_der+y_movidos
	}
	
	if(flechamovida==flechadwiz){
		x_movidos=x_inicio_dw_iz-flechamovida._x
		y_movidos=y_inicio_dw_iz-flechamovida._y
		
		objetodibujar.flechaupiz._x=flechamovida._x
		objetodibujar.flechaupiz._y=y_inicio_up_iz+y_movidos
		objetodibujar.flechaupder._x=x_inicio_up_der+x_movidos
		objetodibujar.flechaupder._y =y_inicio_up_der+y_movidos
		objetodibujar.flechadwder._x=x_inicio_dw_der+x_movidos
		objetodibujar.flechadwder._y =flechamovida._y
	}
	if(flechamovida==flechadwder){
		x_movidos=x_inicio_dw_der-flechamovida._x
		y_movidos=y_inicio_dw_der-flechamovida._y

		objetodibujar.flechaupder._x=flechamovida._x
		objetodibujar.flechaupder._y =y_inicio_up_der+y_movidos
		objetodibujar.flechadwiz._x=x_inicio_dw_iz+x_movidos
		objetodibujar.flechadwiz._y=flechamovida._y
		objetodibujar.flechaupiz._x=x_inicio_up_iz+x_movidos
		objetodibujar.flechaupiz._y=y_inicio_up_iz+y_movidos
	}
	
	ajusta_flechas(0)
	
	objetodibujar.recuadro.removeMovieClip()
	objetodibujar.createEmptyMovieClip("recuadro", objetodibujar.getNextHighestDepth());
	objetodibujar.recuadro.lineStyle(1, 0x999999, 100);
	objetodibujar.recuadro.moveTo(objetodibujar.flechaupiz._x, objetodibujar.flechaupiz._y);
	objetodibujar.recuadro.lineTo(objetodibujar.flechaupder._x, objetodibujar.flechaupder._y);
	objetodibujar.recuadro.lineTo(objetodibujar.flechadwder._x, objetodibujar.flechadwder._y);
	objetodibujar.recuadro.lineTo(objetodibujar.flechadwiz._x, objetodibujar.flechadwiz._y);
	objetodibujar.recuadro.lineTo(objetodibujar.flechaupiz._x, objetodibujar.flechaupiz._y);
}

function ajusta_flechas(recibo){
	esquinas=flechaupiz.getBounds(this)
	if(esquinas.xMin>esquinas_mascara.xMin) {
		dif=esquinas.xMin-esquinas_mascara.xMin
		flechaupiz._x -=dif+1
	}
	if(esquinas.yMin>esquinas_mascara.yMin) {
		dif=esquinas.yMin-esquinas_mascara.yMin
		flechaupiz._y -=dif+1
	}
	esquinas=flechaupder.getBounds(this)
	if(esquinas.xMax<esquinas_mascara.xMax) {
		dif=esquinas_mascara.xMax-esquinas.xMax
		flechaupder._x +=dif+1
	}
	if(esquinas.yMin>esquinas_mascara.yMin) {
		dif=esquinas.yMin-esquinas_mascara.yMin
		flechaupder._y -=dif+1
	}
	
	esquinas=flechadwiz.getBounds(this)
	if(esquinas.xMin>esquinas_mascara.xMin) {
		dif=esquinas.xMin-esquinas_mascara.xMin
		flechadwiz._x -=dif+1
	}
	if(esquinas.yMax<esquinas_mascara.yMax) {
		dif=esquinas_mascara.yMax-esquinas.yMax
		flechadwiz._y +=dif+1
	}
	
	esquinas=flechadwder.getBounds(this)
	if(esquinas.xMax<esquinas_mascara.xMax) {
		dif=esquinas_mascara.xMax-esquinas.xMax
		flechadwder._x +=dif+1
	}
	if(esquinas.yMax<esquinas_mascara.yMax) {
		dif=esquinas_mascara.yMax-esquinas.yMax
		flechadwder._y +=dif+1
	}
	if(recibo==1)redimensiona_imagen()
}

function redimensiona_imagen(){
	altofoto=insfoto._width
	anchofoto=insfoto._height
	esquinas=flechaupiz.getBounds(this)
	arriba_iz=esquinas.xMin
	esquinas=flechaupder.getBounds(this)
	arriba_der=esquinas.xMax
	ancho_flechas=arriba_der-arriba_iz
	
	esquinas=flechaupiz.getBounds(this)
	arriba_iz=esquinas.yMin
	esquinas=flechadwiz.getBounds(this)
	abajo_der=esquinas.yMax
	alto_flechas=abajo_der-arriba_iz

	if(ancho_flechas>=ancho_foto_inicio || alto_flechas>=alto_foto_inicio){
		situa_flechas()
	}else{
		if(anchofoto>=altofoto)	porcentaje=(ancho_flechas*100)/ancho_foto_inicio
		if(anchofoto<altofoto)	porcentaje=(alto_flechas*100)/alto_foto_inicio
		insfoto._xscale=porcentaje
		insfoto._yscale=porcentaje
		insfoto._x=flechaupiz._x
		insfoto._y=flechaupiz._y
		situa_flechas()
	}
}

function guardar(){
	_parent.inscargando.gotoAndStop(2)
	misdatos = new LoadVars();
	misdatos.onLoad = finalizar_guardar;
	misdatos.origen="imagenes/"+nombrearchivo
	misdatos.destino="imagenes/laimagen_redimensionada.jpg"
	misdatos.porcentaje=insfoto._xscale
	misdatos.izquierda=Math.abs(insfoto._x-354.7)
	misdatos.arriba=Math.abs(insfoto._y-281.7)
	misdatos.sendAndLoad("redimensionar_imagen.php", misdatos, "post");
	//misdatos.send("lee_area_redimensionar_imagen.php", "_blank", "post");
}

function finalizar_guardar(){
	_root.inscargando.gotoAndStop(1)
	gotoAndPlay("avanzar")
}
alguna ayudita?
__________________
Quien parte de las sombras y se levanta como un muerto brillando como una estrella sobre èl (towlen), entre la oscuridad congelante y la luz.
LÄRÇ :serio: