AS3 — Отмена PHP-запроса

#php #actionscript-3 #upload

#php #actionscript-3 #загрузка

Вопрос:

Приведенный ниже скрипт предназначен для загрузки изображения через PHP. Теперь я хотел бы предоставить пользователю возможность отменить загрузку. Как отменить запрос PHP после его отправки?

     package
{
    import com.adobe.images.PNGEncoder;
    import flash.display.BitmapData;
    import flash.display.MovieClip;
    import flash.events.Event;
    import flash.events.SecurityErrorEvent;
    import flash.events.IOErrorEvent
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat
    import flash.net.URLRequest;
    import flash.net.URLRequestMethod;
    import flash.utils.ByteArray;

    public class ServeruploadExample
    {
        private var loader:URLLoader;

        private const API_KEY:String = "<api key>";
        private const UPLOAD_URL:String = "http://example.com/upload-image.php";

        public function ImgurExample() {

            loader = new URLLoader();
            loader.dataFormat = URLLoaderDataFormat.VARIABLES;
            loader.addEventListener(Event.COMPLETE, onCookieSent);
            loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onSecurityError);
            loader.addEventListener(IOErrorEvent.IO_ERROR, onIOError);

            // Create a bitmapdata instance of a movieclip on the stage.
            var mc:MovieClip;
            var b:BitmapData = new BitmapData(mc.width, mc.height, true);
            b.draw(mc);
            var png:ByteArray = PNGEncoder.encode(b);

            var vars:String = "?key="   API_KEY   "amp;name=nameamp;title=title";
            var request:URLRequest = new URLRequest(UPLOAD_URL   vars);
            request.contentType = "application/octet-stream";
            request.method = URLRequestMethod.POST;
            request.data = png;

            loader.load(request);
        }
        // privates


    }
}
  

Ответ №1:

Просто вызовите метод .close() класса URLLoader, который завершит операцию загрузки.

В вашем примере настройте кнопку отмены и:

 public function cancel_upload_click_handler(e:MouseEvent):void
{
   loader.close();
}