пасиба! получилось) правда по началу появлялась ошибка:
Error: Error #2101: Строка, переданная в URLVariables.decode(), должна быть строкой запроса закодированного URL-адреса и содержать пары имя/значение.
at Error$/throwError()
at flash.net::URLVariables/decode()
at flash.net::URLVariables()
at flash.net::URLLoader/onComplete()
я вспомнил что где-то видел что с сервера взвращали перемынные так: res=done, и потом у меня все заработало!
Добавлено через 3 часа 51 минуту
сейчас возник еще один вопрос:

Код AS3:
var pngStream:ByteArray = PNGEncoder.encode(canvasBmp);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var pngURLRequest:URLRequest = new URLRequest("http://prznd_d.server/");
pngURLRequest.requestHeaders.push(header);
pngURLRequest.method = URLRequestMethod.POST;
pngURLRequest.data = pngStream;
var loader:URLLoader = new URLLoader(pngURLRequest);
loader.addEventListener(Event.COMPLETE, phpComplete);
loader.load(pngURLRequest);
когда функция выглядет вот так все нрмально работает...
но мне помимо этого нужно отправить на сервер несколько переменных, например user_id и message_id.
когда я пределываю функцию вот так:

Код AS3:
var pngStream:ByteArray = PNGEncoder.encode(canvasBmp);
var header:URLRequestHeader = new URLRequestHeader("Content-type", "application/octet-stream");
var pngURLRequest:URLRequest = new URLRequest("http://prznd_d.server/");
pngURLRequest.requestHeaders.push(header);
pngURLRequest.method = URLRequestMethod.POST;
var variables:URLVariables = new URLVariables();
variables.image = pngStream;
variables.user_id = 1;
variables.message_id = 1;
pngURLRequest.data = variables;//pngStream;
var loader:URLLoader = new URLLoader(pngURLRequest);
loader.addEventListener(Event.COMPLETE, phpComplete);
loader.load(pngURLRequest);
то на сервере $_POST['image'] содержит только "png ", подскажите в чем дело?