Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 25.11.2009, 14:27
nayre вне форума Посмотреть профиль Отправить личное сообщение для nayre Найти все сообщения от nayre
  № 1  
nayre

Регистрация: Oct 2009
Сообщений: 6
По умолчанию Помогите разобраться

Собственно вот скрипт вернее его часть целиком не получается из за ограничения в 12к символов.
Код AS3:
		{
			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;
			}
 
		}
 
	}
Добавлено через 2 минуты
Исходник: исходник
Мне надо что бы в конце загрузки очищался список файлов, по типу события remove

Старый 25.11.2009, 14:32
nayre вне форума Посмотреть профиль Отправить личное сообщение для nayre Найти все сообщения от nayre
  № 2  
nayre

Регистрация: Oct 2009
Сообщений: 6
в функции
Код AS3:
		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();
 
		}
Но как это сделать непойму

Старый 25.11.2009, 16:25
SamFR вне форума Посмотреть профиль Отправить личное сообщение для SamFR Посетить домашнюю страницу SamFR Найти все сообщения от SamFR
  № 3  
SamFR

Регистрация: Mar 2008
Адрес: Ростов-на-Дону
Сообщений: 354
Постарайтесь объяснить суть проблемы, и назвать тему хоть чуточку информативнее. Может быть, тогда вам помогут быстрее

Старый 25.11.2009, 18:58
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Название темы не отражает сути вопроса.

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 02:53.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 02:53.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.