Тема: [Вконтакте] Загрузка фоток в Вконтакт
Показать сообщение отдельно
Старый 24.08.2010, 17:12
O.K. вне форума Посмотреть профиль Отправить личное сообщение для O.K. Найти все сообщения от O.K.
  № 19  
Ответить с цитированием
O.K.

Регистрация: Apr 2007
Адрес: Новосибирск
Сообщений: 98
Совсем не понимаю: на стену загрузить получается - а в альбом нет, пустой фото_лист.

Код AS3:
package dataSaves
{
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.MovieClip;
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.media.Video;
	import flash.net.FileReference;
	import flash.net.URLVariables;
	import flash.utils.ByteArray;
 
	import mx.graphics.codec.JPEGEncoder;
 
	public class SaveFromCameraToJPG extends EventDispatcher
	{
		protected var bitmapData:BitmapData;
		protected var video:MovieClip;
		protected var i:Number=1;
		protected var fileRef:FileReference;
		protected var encoder:JPEGEncoder;
		protected var ba:ByteArray;
		protected var upload_url:String;
		public var fileVariables:URLVariables;
		public var smth:String;
 
		public function SaveFromCameraToJPG()
		{
			fileRef = new FileReference();
			encoder = new JPEGEncoder();
 
 
		}
 
		public function takeSnapshot (vid:MovieClip):void
		{
			video=vid;
			bitmapData=new BitmapData(640,480);
			bitmapData.draw(video);
			ba = encoder.encode(bitmapData);
		}
 
			public function	saveImageToFile():void
		{
			fileRef.save(ba,"funnyPhoto"+i+".jpg");
			i++;
		}
 
		public function saveImageToServer(_upload_url:String):void
		{
			var mll:MultipartURLLoader = new MultipartURLLoader();
			mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm);			
			mll.addFile(ba, "photo.jpg","photo");
			mll.load(_upload_url);		
		}
		private function onUploadCompleteThroughAlarm(event:Event):void {
			smth=event.currentTarget.loader.data as String;
			event.currentTarget.removeEventListener(event.type, arguments.callee);
			savePhotos(parseServerAck(event.currentTarget.loader.data as String));
 
		}
		private static function parseServerAck(serverAck:String):* 
		{
			var result:* = new Object;
			for each(var pair:String in serverAck.split(/\s*[{},]\s*/)) {
				var tmp:Array = pair.split(/\s*[:"]\s*/);
				if (  (tmp[1] == "server")
					|| (tmp[1] == "photo")
					|| (tmp[1] == "photos_list")
					|| (tmp[1] == "aid")
					|| (tmp[1] == "hash")) {
					result[tmp[1]] = tmp[4];
				}
			}
			return result;			
		}
		private function savePhotos(serverAck:*):void 
		{			
			var variables:URLVariables = new URLVariables;
			for(var key:String in serverAck) 
			{
				variables[key] = serverAck[key];
			}
			fileVariables=variables;
			dispatchEvent(new Event("fileUploaded"));
		}
 
	}
 
}