![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Jan 2006
Сообщений: 179
|
package com { import flash.utils.*; import flash.display.*; import flash.events.*; import flash.net.*; import flash.text.*; import fl.controls.ProgressBar; import fl.controls.ProgressBarMode; import flash.external.ExternalInterface; public class MainClass extends Sprite { private var error:TextField = new TextField(); private var myFormat:TextFormat; private var browseButt:MovieClip; private var uploadButt:MovieClip; private var deleteButt:MovieClip; private var db:MovieClip; private var pb:ProgressBar = new ProgressBar(); private var fileTypes:Object = new Object(); private var fr:FileReference = new FileReference(); private var maxFileSize:Number; private var myFlashVars; private var url; private var session:String; private var id; private var type; private var fileFilter; private var request:URLRequest; public function MainClass() { // определяем входящие переменные myFlashVars = stage.loaderInfo.parameters; // приём внешних параметров maxFileSize = myFlashVars.size ? myFlashVars.size : 300; url = myFlashVars.url ? myFlashVars.url : 'http://upload/singleUploader/upload.php'; fileFilter = myFlashVars.fileFilter ? new FileFilter(myFlashVars.fileFilterTitle, myFlashVars.fileFilter) : new FileFilter("Все файлы", "*.*"); type = myFlashVars.type ? myFlashVars.type : null; id = myFlashVars.id ? myFlashVars.id : 0; session = myFlashVars.session ? myFlashVars.session : null; // формат для текста myFormat = new TextFormat(); myFormat.font="Verdana"; myFormat.color = 0x990000; myFormat.size = 12; // добавляем textField error.width=410; error.height=20; error.x=50; error.y=45; error.setTextFormat(myFormat); addChild(error); // добавляем кнопки browseButt = new (getDefinitionByName("ub")); browseButt.x=50; browseButt.y=20; browseButt.addEventListener(MouseEvent.CLICK, browseFiles); addChild(browseButt); // добавляем progressBar pb.mode = ProgressBarMode.MANUAL; pb.setSize(280, 4); pb.move(10, 30); pb.visible = false; addChild(pb); //url + id + "/" + type // составляем запрос request = new URLRequest(url); request.method = URLRequestMethod.POST; var variables:URLVariables = new URLVariables(); variables.id = id; variables.type = type; variables.session = session; request.data = variables; fr.addEventListener(Event.SELECT, selectHandler); } // функция при выборе файлов private function browseFiles(event:MouseEvent):void { fr.browse(new Array(fileFilter)); } // функция, когда файлы выбраны private function selectHandler(event:Event):void { if(maxFileSize < round(fr.size/1024)) { // если размер больше error.htmlText = "Файл не может превышать <b>" + maxFileSize + "MB</b>"; error.setTextFormat(myFormat); return; } browseButt.removeEventListener(MouseEvent.CLICK, browseFiles); browseButt.addEventListener(MouseEvent.CLICK, startUpload); } private function startUpload(event:MouseEvent):void { browseButt.visible = false; pb.setProgress(0, 100); pb.visible = true; fr.addEventListener(ProgressEvent.PROGRESS, progressHandlerFile) fr.addEventListener(Event.COMPLETE, completeHandlerFile); fr.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA, uploadCompleteHandlerFile); fr.upload(request); } // функция прогресса отправки файла private function progressHandlerFile(event:ProgressEvent):void { var percentLoadeds = int(Math.round(event.bytesLoaded/event.bytesTotal*100)); error.htmlText='Файл загружен на <b>' + percentLoadeds + '</b>%'; error.setTextFormat(myFormat); pb.setProgress(event.bytesLoaded, event.bytesTotal); } // функция конца отправки файла private function completeHandlerFile(event:Event):void { pb.visible = false; error.htmlText='Файл успешно загружен'; error.setTextFormat(myFormat); } // функция округления до мегабайт private function round(number:Number, pow:Number = 0):Number { number=number/1024; var kof = Math.pow(10, pow); return Math.ceil(number*kof)/kof; } // функция передачи данных в js private function uploadCompleteHandlerFile(event:DataEvent):void { ExternalInterface.call("receiveFromFlash3", event.data); } } } он работает если запускать из флеш но если из браузреа пишет: SecurityError: Error #2000: Отсутствует активный контекст безопасности. Потом переделал повесил события выгрузки на кнопку, все ранво так же ошибка, скажите в чем может быть проблема? |
|
|||||
|
Регистрация: Dec 2010
Сообщений: 342
|
Ошибка безопасности. Нужен кроссдомейник скорее всего.
http://help.adobe.com/ru_RU/AS3LCR/F...rityError.html |
|
|||||
|
Регистрация: Jan 2006
Сообщений: 179
|
Спасибо, проблема была в другом, все решено
|
|
|||||
|
Регистрация: Mar 2011
Сообщений: 5
|
Ежели не секрет, то в чем была проблема?
На данный момент загрузка файла из приложения swf - на локальной машине http://localhost/domain/ работает, а при публикации на хостинг - не работает!!! Ошибка - SecurityError: Error #2000: Отсутствует активный контекст безопасности. |
![]() |
![]() |
Часовой пояс GMT +4, время: 22:03. |
|
|
« Предыдущая тема | Следующая тема » |
|
|