Código ActionScript :
if (Ruta_txt.text == "") {
mostrarError("Debes elegir un archivo");
return;
} me marca el error:Código ActionScript :
TypeError: Error #1009: Cannot access a property or method of a null object reference. at Adjunto_fla::MainTimeline/comprobarEnviar()
, o si lo valido que aunque este vacio el campo me envie el mail, no me envia nada, les pongo el codigo completo gracias
Código ActionScript :
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.text.*;
//Filtro que le voy a pasar al subidor para que muestre cierto tipo de archivos
//En este caso se muestran solamente docs y pdfs
var filtroArchivos:FileFilter = new FileFilter("Documentos: .doc, .pdf", "*.doc;*.pdf");
//URL donde tenemos el php que vá a realizar el envio
var url:String = "http://www.adysa.com.mx/subidas.php"
//Objeto FileReference que vá a hacer la subida
var subidor:FileReference;
//Peso máximo del archivo que vamos a subir
var pmax:Number = 2048;
Examinar_bt.addEventListener(MouseEvent.CLICK, examinar);
Enviar_bt.addEventListener(MouseEvent.CLICK, comprobarEnviar);
function reiniciarCampos():void {
subidor = null;
Nombre_txt.text = "";
Destinatario_txt.text = "";
comentarios_txt.text="";
Ruta_txt.text = "";
Estado_txt.text = "";
}
//Antes de enviar el correo comprobamos que todos los campos estén rellenados
function comprobarEnviar(e:MouseEvent):void
{
if(Nombre_txt.text == ""){
mostrarError("Debes introducir un nombre");
return;
}
if(Destinatario_txt.text == ""){
mostrarError("Debes introducir un email");
return;
}
if (!emailValido(Destinatario_txt.text)) {
mostrarError("El email del destinatario no es válido");
return;
}
if (Ruta_txt.text == "") {
mostrarError("Debes elegir un archivo");
return;
}
if(subidor.size/1024 > pmax){
mostrarError("El tamaño máximo para los documentos es 2MB");
return;
}
subir();
}
function emailValido(email:String):Boolean{
var emailExpression:RegExp = /^[a-z][\w.-]+@\w[\w.-]+\.[\w.-]*[a-z][a-z]$/i;
return emailExpression.test(email);
}
function mostrarError(txt:String):void {
Estado_txt.text = txt;
}
function examinar(e:MouseEvent):void {
Ruta_txt.text = ""
subidor = new FileReference();
ponerListeners(subidor);
subidor.browse(new Array(filtroArchivos));
}
function ponerListeners(dispatcher:IEventDispatcher) {
dispatcher.addEventListener(Event.SELECT, seleccionar);
dispatcher.addEventListener("uploadCompleteData",completadaSubida);
dispatcher.addEventListener(IOErrorEvent.IO_ERROR, errorSubida);
dispatcher.addEventListener(ProgressEvent.PROGRESS, progresoSubida);
}
function seleccionar(event:Event):void {
subidor = FileReference(event.target);
Ruta_txt.text = subidor.name;
}
function subir():void{
var request:URLRequest = new URLRequest(url);
request.method = URLRequestMethod.POST;
request.data = new URLVariables();
request.data.nombre = Nombre_txt.text;
request.data.destinatario = Destinatario_txt.text;
request.data.comentarios = comentarios_txt.text;
subidor.upload(request);
mouseEnabled = false;
mouseChildren = false;
mostrarError("Subiendo archivo...");
}
/*
* Función que se ejecuta al terminar la subida y recibir una respuesta (un echo) del php. En el php
* podemos ver que se devuelve un 1 si el envio del correo ha ido bien y un 0 si algo ha fallado.
*/
function completadaSubida(e:*):void {
if (e.data == "1") {
reiniciarCampos()
mostrarError("Mensaje Enviado")
}else{
mostrarError("Error al enviar el mensaje");
}
mouseEnabled = true;
mouseChildren = true;
}
function progresoSubida(e:ProgressEvent):void {
var p = Math.floor((e.bytesLoaded / e.bytesTotal) * 100);
var txt:String = "Subiendo archivo: " + String(p) + "%";
mostrarError(txt);
}
function errorSubida(e:IOErrorEvent):void {
mouseEnabled = true;
mouseChildren = true;
mostrarError("Error al subir el documento. Por favor, inténtelo más tarde.");
}
