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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 08.04.2010, 15:10
ZergMaster вне форума Посмотреть профиль Отправить личное сообщение для ZergMaster Найти все сообщения от ZergMaster
  № 5  
Ответить с цитированием
ZergMaster
 
Аватар для ZergMaster

Регистрация: May 2008
Адрес: Питер
Сообщений: 385
Отправить сообщение для ZergMaster с помощью ICQ Отправить сообщение для ZergMaster с помощью Skype™
Код AS3:
 
 
 
 
 
 
 
        var Wate = new wate();
	var sendScr = new SendScr();
	function _upLoadPhoto(urlak:String):void 
		{
 
			wrapper.external.scrollWindow(500, 500); //скроллируем окно к кнопке sendScr (этот как бы подтверждение отправки)
 
			addChild(sendScr);
			sendScr.x=0;
			sendScr.y=610;
 
			sendScr.addEventListener(MouseEvent.CLICK, sendScrHandler) 
			sendScr.useHandCursor = true;
			sendScr.buttonMode = true;
			function sendScrHandler(e:Event):void
				{
 
 
							addChild(Wate);
							Wate.x = 0;
							Wate.y = 608.0;
							var bmd:BitmapData=new BitmapData(800, 600, false); //--создаем bitmapdata
							bmd.draw(stage); //--рисуем в битмапе интересующий мувиклип
 
							var byteArrayScr : ByteArray = new JPGEncoder(85).encode(bmd);
 
//здесь хотелось бы отметить, что для вышесказанного требуется (и для кое-чего внизу):
//import fl.transitions.Tween;
//import fl.transitions.easing.*;
//import com.adobe.serialization.json.JSON;
//import flash.utils.getQualifiedClassName;
//import com.adobe.images.JPGEncoder;
//import MultipartURLLoader;
//
 
 
 
							var loader:Loader = new Loader();
							loader.loadBytes(byteArrayScr);
							//addChild(loader);
 
 
							var mll:MultipartURLLoader = new MultipartURLLoader();
							mll.addEventListener(Event.COMPLETE, onUploadCompleteThroughAlarm);			
							mll.addFile(byteArrayScr, "file.jpg", "file1", 'image/jpg');
							mll.load(UploadURL);	
 
 
 
 
 
					function onUploadCompleteThroughAlarm(event:Event):void 
						{
							event.currentTarget.removeEventListener(event.type, arguments.callee);
							savePhotos(parseServerAck(event.currentTarget.loader.data as String));
 
							trace('********************onUploadCompleteThroughAlarm ==========> ')
							}
					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] == "photos_list")
															  || (tmp[1] == "aid")
															  || (tmp[1] == "hash")) 
										{
											result[tmp[1]] = tmp[4];
											}
									}
							return result;			
							}
 
					function savePhotos(serverAck:*):void 
						{			
							var variables:URLVariables = new URLVariables;
							for(var key:String in serverAck) 
								{
									variables[key] = serverAck[key];
									}
							_savePhoto(variables.aid, variables.server, variables.photos_list, variables.hash)							
							}
 
 
 
 
					}
 
 
 
 
 
 
 
 
 
			function _savePhoto(AiD:String, ServeR:String, Photos_lisT:String, HasH:String):void 
				{
					vkr.addEventListener(VkontakteEvent.VK_RESPONSE, onSavePhotoResponse);
					vkr.addEventListener(VkontakteEvent.VK_ERROR, onSavePhotoError);
					vkr.sendSavePhoto(AiD, ServeR, Photos_lisT, HasH)
					}
 
					function onSavePhotoResponse(e:VkontakteEvent):void 
						{
							vkr.removeEventListener(VkontakteEvent.VK_RESPONSE, onSavePhotoResponse);
							trace('........... по идее фотка загрузилась в наш новый альбом... '+'\n'+'e.xml = '+e.xml)
							ssil = e.xml.photo.src_big;
 
 
							var toWallId = e.xml.photo.pid;
							var asdf = String(wrapper.application.parameters["viewer_id"]+'_'+e.xml.photo.pid);
							removeChild(Wate);
							_SavePost(asdf, toWallId) // а вот это мы уже будем постить фотку из альбома на стену
 
							}
					function onSavePhotoError(e:VkontakteEvent):void 
						{
							vkr.removeEventListener(VkontakteEvent.VK_ERROR, onSavePhotoError);
							trace('Большая и страшная Еррора = '+e.message)
 
							}
 
 
 
 
 
 
 
 
 
					}
 
 
			function _SavePost(Photo_id, ToWallId):void 
				{
 
					vkr.addEventListener(VkontakteEvent.VK_RESPONSE, onSavePost);
					trace('Photo_id = '+Photo_id);
					trace('toWallId = '+ToWallId);
					vkr.sendSavePost(Wally, Photo_id, ToWallId)
					function onSavePost(e:VkontakteEvent):void 
						{
							trace("onSavePost ===> "+e.xml)
 
							removeChild(sendScr);
							wrapper.external.saveWallPost(e.xml.post_hash);
							gotoAndPlay(1);
 
 
							}
 
					}
 
 
 
 
 
 
 
 
 
 
 
			}
Добавлено через 1 минуту
Вот такая штука... Но даже и этого недостаточно. В начале приложения надо обозначить, что если оно открывается со стены, то нужно образить определенную фотку из определенного альбома определенного юзверя... У меня это реализовано так:

Код AS3:
var wrapper: Object;
this.addEventListener( Event.ADDED_TO_STAGE, onAddedToStage ); //стандартный листенер вконтактовского прелоадера wrapper
 
function onAddedToStage(e: Event): void  
	{
	var temnovato =new Temno();
	addChild(temnovato)
 
	wrapper = Object(parent.parent);
	vkr = new VkontakteRequest(wrapper.application.parameters["viewer_id"], wrapper.application.parameters["api_url"]);
	trace("wrapper.application.parameters['referrer'] ============>"+wrapper.application.parameters['referrer'])
	trace("wrapper.application.parameters['post_id'] ============>"+wrapper.application.parameters['post_id'])
	trace("wrapper.application.parameters['post_id'] ============>"+wrapper.application.parameters['poster_id'])
 
	if(wrapper.application.parameters['referrer']=="wall_view_inline") //если со стены
			{
				vkr.addEventListener(VkontakteEvent.VK_RESPONSE, onGetByIdResponse);
				vkr.sendGetById(wrapper.application.parameters['poster_id']+'_'+wrapper.application.parameters['post_id']);	
				function onGetByIdResponse(e: VkontakteEvent): void
					{
 
						vkr.removeEventListener(VkontakteEvent.VK_RESPONSE, onGetByIdResponse);
						trace('e.xml.photo[0].src_big = '+e.xml.photo[0].src_big)
 
						var scrloader = new Loader();						
						var scrloaderContext2:LoaderContext = new LoaderContext();
						scrloaderContext2.checkPolicyFile = true;												
						var scrPRErequest:URLRequest = new URLRequest(e.xml.photo[0].src_big);
 
 
						scrloader.load(scrPRErequest, scrloaderContext2);						
						scrloader.contentLoaderInfo.addEventListener(Event.COMPLETE,SCRcomImage);
 
						function SCRcomImage(e:Event):void 
							{
								removeChild(temnovato);
								addChild(scrloader);
								scrloader.width =  800;
								scrloader.height =  600;
								}
 
						}
 
				} else 
						{
						removeChild(temnovato);
						}
 
 
	wrapper.external.setTitle('Moе приложение');
	wrapper.external.scrollWindow(100, 500);
	wrapper.addEventListener("onApplicationAdded", onApplicationAdded);
	wrapper.external.showInstallBox();  
 
 
	}
Добавлено через 14 минут
Но вот осталась все-таки одна проблемка... С кодировками. Почему-то, если нузываю альбом по русски
Код AS3:
var AlbTitle:String = "Мой альбом"
то получается incorrect signature, потому что отсылается почему-то абракадабра полная.. хотя по идее все должно быть тип-топ, ведь по умолчанию всегда UTF-8, и контакт должен понимать эту кодировку.. Эта проблема не только тут, точно так же и с пояснениями к альбому - если по русски, что-то там с кодировками. Я пробовал escape().. в этом случае в запросе уже показывается не абракадабра, но все равно incorrect signature... ( Что-тоя видимо не так где-то делаю...


Последний раз редактировалось ZergMaster; 08.04.2010 в 15:13.
Создать новую тему   Часовой пояс GMT +4, время: 21:12.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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