
Код 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... ( Что-тоя видимо не так где-то делаю...