![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2009
Сообщений: 6
|
Собственно вот скрипт вернее его часть целиком не получается из за ограничения в 12к символов.
{ stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; Security.allowDomain("*"); _initParams(); _init ( ) ; // _drawImageBox(); } private function _initParams ( ) : void { var paramObj:Object = LoaderInfo(this.root.loaderInfo).parameters; if (paramObj.hasOwnProperty('path')) _path = paramObj['path']; else _path = "http://ady/Development/imgUpload/production"; } private function _init ( ) : void { uploadBT.label = "Upload"; uploadBT.addEventListener(MouseEvent.CLICK, _handleUploadEvent); _cueList = new Dictionary(true); _gridPresenter = new GridPresenter(352, 155, 352, 52); addChild(_gridPresenter); _gridPresenter.y = 63; _gridPresenter.x = 12; _browseBtn = browseBT;// new SimpleButton ( ) ; _browseBtn.label = "Browse"; _browseBtn.useHandCursor = true; _browseBtn.addEventListener ( MouseEvent.CLICK, _handleMouseEvent ) ; _fileFilter = new FileFilter ( "Image", "*.jpg;*.gif;*.png;" ) ; } private function encodingComplete() { // trace('end of commands ...'); // return; _uploading = false; statusMsg.text = 'Sending files ..'; _thereCanBeOnlyOneURLLoader.load( urlRequest ); trace('handle all finished events ..'); } var urlRequest : URLRequest; private function uploadNextFile() { _currentFileToUpload++ if (_currentFileToUpload >= _gridPresenter.totalItems){ encodingComplete(); return; } var imgStrip:ImageStrip = _gridPresenter.getItemAt(_currentFileToUpload); _currentUploadedImg = _cueList[imgStrip]; //var e:Error = new Error("Current call stack:"); //var s:String = e.getStackTrace(); //trace(_currentUploadedImg+'--'+ imgStrip.fileName,s); //var btData:BitmapData = _currentUploadedImg._img.resizeBitmapData(_MAX_WIDTH, _MAX_HEIGHT); var btArray:ByteArray = imgStrip.encodedByteArray; // set up the request & headers for the image upload; if (!urlRequest){ urlRequest = new URLRequest(); urlRequest.url = _path+'/receiveFile.php'; urlRequest.contentType = 'multipart/form-data; boundary=' + UploadPostHelper.getBoundary(); urlRequest.method = URLRequestMethod.POST; urlRequest.requestHeaders.push( new URLRequestHeader( 'Cache-Control', 'no-cache' ) ); } var newBArray:ByteArray = UploadPostHelper.getPostData( imgStrip.fileName, btArray, null, _currentFileToUpload ); var currBArray:ByteArray = urlRequest.data as ByteArray; if(currBArray) currBArray.writeBytes(newBArray); else currBArray = newBArray; urlRequest.data = currBArray; /* var sNode:NirvanixStorageNode = new NirvanixStorageNode(); sNode.fileName = imgStrip.fileName; sNode.destFolderPath = "/"; sNode.host = _path + '/receiveFile.php'; sNode.uploadToken = '1234'; var uploader:NirvanixBinaryUploader = new NirvanixBinaryUploader(sNode, btArray); uploader.upload();*/ // create the image loader & send the image to the server; uploadNextFile(); } private function _handleUploadEvent (evnt:MouseEvent):void { if (_uploading) return; if (_gridPresenter.totalItems == 0) { statusMsg.text = 'No files to upload..'; return; } for (var k = 0; k < _gridPresenter.totalItems; k++) { var tmpStrip:ImageStrip = _gridPresenter.getItemAt(k); if (tmpStrip.isEncoding) { statusMsg.text = 'Wait for encoding to end.'; return; } } _uploading = true; _currentFileToUpload = -1; statusMsg.text = 'Preparing files ..'; evnt.updateAfterEvent(); if (!_thereCanBeOnlyOneURLLoader) { _thereCanBeOnlyOneURLLoader = new URLLoader(); _thereCanBeOnlyOneURLLoader.addEventListener(ProgressEvent.PROGRESS, eventFileUploadProgress); _thereCanBeOnlyOneURLLoader.addEventListener(Event.COMPLETE, eventFileUploadComplete); _thereCanBeOnlyOneURLLoader.addEventListener(IOErrorEvent.IO_ERROR, eventFileUploadError); _thereCanBeOnlyOneURLLoader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, eventFileUploadError); _thereCanBeOnlyOneURLLoader.dataFormat = URLLoaderDataFormat.BINARY; } uploadNextFile(); trace("total files to upload : " + _gridPresenter.totalItems); return; } private function eventFileInfoError(e:IOErrorEvent) { trace(e.toString()); } private function eventFileInfo(e:ProgressEvent) { var uLoader:URLLoader = URLLoader(e.target); trace('data:'+uLoader.data); //op.text+=(e.bytesLoaded+'--'+e.bytesTotal); } private function eventFileUploadError(e:*) { _uploading = false; trace('error: '+e); //_img.showStatus("Error!"); } private function eventFileUploadComplete(e:Event) { var urlVariables:URLVariables = new URLVariables(e.target.data); trace('completed '+urlVariables.status ); if (urlVariables.status == 1) { trace(_originalSize + '-' + urlVariables.size); statusMsg.text = 'Files Uploaded succesfully.'; //_img.showStatus("<span class='text'>Upload completed : <a target='_blank' href='" + urlVariables.filepath + "' >Download Image</a></span>"); } else { statusMsg.text = 'Error uploading files.'; //_img.showStatus("<span class='text'>Upload Failed</span>"); } _uploading = false; _currentFileToUpload = -1; urlRequest.data = null; ExternalInterface.call('imgUploaded'); //trace((e.target as URLLoader).data); //uploadNextFile(); } private function eventFileUploadProgress(e:ProgressEvent) { trace(e.bytesLoaded + ';' + e.bytesTotal); } private function _handleMouseEvent ( evt : MouseEvent ) : void { _fileRef = new FileReferenceList ( ) ; _fileRef.browse ( [_fileFilter] ) ; _fileRef.addEventListener ( Event.SELECT, _onImageSelect ) ; } private function _onImageSelect ( evt : Event ) : void { for (var k = 0; k < _fileRef.fileList.length; k++) { var currFile:FileReference = _fileRef.fileList[k]; currFile.load ( ) ; currFile.addEventListener ( Event.COMPLETE, _onDataLoaded ) ; } // _fileNameTxt.text = String ( evt.target.name ) ; } private function _onDataLoaded ( evt : Event ) : void { var tempFileRef : FileReference = FileReference ( evt.target ) ; _loader = new Loader ( ) ; _loader.name = tempFileRef.name; _loader.contentLoaderInfo.addEventListener ( Event.COMPLETE, _onImageLoaded ) ; _originalSize = tempFileRef.data.length; _loader.name += 'z-z-z-z(' + Math.round(_originalSize/1000) + 'Kb)'; _loader.loadBytes ( tempFileRef.data ) ; } private function _onImageLoaded ( evt : Event ) : void { var tmpLoader:LoaderInfo = evt.target as LoaderInfo; var str = tmpLoader.loader.name; _bitmap = Bitmap ( evt.target.content ) ; if (_img) { _img.dispose(); if (this.contains(_img)) removeChild(_img); } _img = new imgBox(_BOX_WIDTH, _BOX_HEIGHT, _bitmap);// new imgHelper(_bitmap); _img.addEventListener("invalidate", eventImageInvalidated); //_img.addEventListener("uploadImage", _handleUploadEvent); //Resize the image if needed var _imgStrip = new ImageStrip(_bitmap,str); _imgStrip.addEventListener("stripClicked", _eventImageStripHit); _imgStrip.addEventListener("removeStrip", _eventRemoveStrip); _imgStrip.buttonMode = true; _gridPresenter.addToGrid(_imgStrip); for (var k = 0; k < _gridPresenter.totalItems; k++) _gridPresenter.getItemAt(k).selected = false; _imgStrip.selected = true; _cueList[_imgStrip] = _img; _img.x = 390; _img.y = 12; addChild ( _img ) ; } public function eventImageInvalidated(e:*) { var theBox:imgBox = e.target; trace('box invalidated..'); // this is a wacky hack, i don't know if thats really what i should do, // but i don't have the time to dig any further.. for (var k = 0; k < _gridPresenter.totalItems; k++){ if (_cueList[_gridPresenter.getItemAt(k)] == theBox){ var imgStp:ImageStrip = _gridPresenter.getItemAt(k) as ImageStrip; imgStp._iHelper.theImage = theBox._img.theImage; imgStp.eventImageInvalidated(); } } } private function _eventRemoveStrip(e:Event) { var theTarget:ImageStrip = e.target as ImageStrip; _gridPresenter.removeFromGrid(theTarget as MovieClip); var imgBx = _cueList[theTarget]; if (this.contains(imgBx)) removeChild(imgBx); _cueList[theTarget] = null; } private function _eventImageStripHit( e:Event) { if (this.contains(_img)) removeChild(_img); var imgBx = _cueList[e.target]; for (var k = 0; k < _gridPresenter.totalItems; k++) _gridPresenter.getItemAt(k).selected = false; e.target.selected = true; _img = imgBx; addChild ( imgBx ) ; } private function _resizeBitmap( target : Bitmap ) : void { //var btData:BitmapData = resizeBitmapData(target.bitmapData, .5); //var newBitmap:Bitmap = new Bitmap(btData); //return newBitmap; if ( target.height > target.width ) { target.width = _MAX_WIDTH; target.scaleY = target.scaleX; } else if ( target.width >= target.height ) { target.height = _MAX_HEIGHT; target.scaleX = target.scaleY; } } } Исходник: исходник Мне надо что бы в конце загрузки очищался список файлов, по типу события remove |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 6
|
в функции
private function eventFileUploadComplete(e:Event) { var urlVariables:URLVariables = new URLVariables(e.target.data); trace('completed '+urlVariables.status ); if (urlVariables.status == 1) { trace(_originalSize + '-' + urlVariables.size); statusMsg.text = 'Files Uploaded succesfully.'; //_img.showStatus("<span class='text'>Upload completed : <a target='_blank' href='" + urlVariables.filepath + "' >Download Image</a></span>"); } else { statusMsg.text = 'Error uploading files.'; //_img.showStatus("<span class='text'>Upload Failed</span>"); } _uploading = false; _currentFileToUpload = -1; urlRequest.data = null; ExternalInterface.call('imgUploaded');//передача в джаву события : загрузка успешна //trace((e.target as URLLoader).data); //uploadNextFile(); } |
|
|||||
|
Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
|
Постарайтесь объяснить суть проблемы, и назвать тему хоть чуточку информативнее. Может быть, тогда вам помогут быстрее
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Название темы не отражает сути вопроса.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 02:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|