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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.03.2012, 15:35
Фенёк вне форума Посмотреть профиль Отправить личное сообщение для Фенёк Найти все сообщения от Фенёк
  № 1  
Ответить с цитированием
Фенёк

Регистрация: May 2011
Сообщений: 221
Attention Никак не загрузить изображение на сервер

Делаю скриншот, пытаюсь отправить его на сервер

Код AS3:
		public function makeScreenshot(e:MouseEvent):void
		{
			var raw			:BitmapData,
				brr			:ByteArray;
 
			raw = new BitmapData(stage.stageWidth, stage.stageHeight);
			raw.draw(stage);
			brr = PNGEncoder.encode(raw);
 
			mpLoader = new MultipartURLLoader();
            mpLoader.addFile(brr, "screenshot.png", "photo", 'image/jpeg');
            mpLoader.addEventListener(Event.COMPLETE, WallSavePhotoPost);
            mpLoader.load(url);
			trace('Дошли досюда значит заливается')
		}
ошибка на строчке
Код AS3:
raw.draw(stage);
есть вот так:
Код AS3:
 
			Security.allowDomain("*");
			var loaderContext:LoaderContext = new LoaderContext();
			loaderContext.checkPolicyFile = true;
Но все равно
Цитата:
SecurityError: Error #2122: Нарушение изолированной среды: BitmapData.draw
и далее по тексту. Как победить?

Старый 02.03.2012, 16:27
Mukon вне форума Посмотреть профиль Отправить личное сообщение для Mukon Найти все сообщения от Mukon
  № 2  
Ответить с цитированием
Mukon
 
Аватар для Mukon

Регистрация: Feb 2012
Сообщений: 45
Смотрите тут
__________________
Если ошибаюсь - исправьте || За хороший ответ ставьте ПЛЮС+

Старый 02.03.2012, 16:30
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 3  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Скорее тут
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 02.03.2012, 16:54
Фенёк вне форума Посмотреть профиль Отправить личное сообщение для Фенёк Найти все сообщения от Фенёк
  № 4  
Ответить с цитированием
Фенёк

Регистрация: May 2011
Сообщений: 221
Mukon Не, ФайлРеференс не пойдет, мне нужно миновать процедуру сохранения по винт. Делаю приложение для вконтакте, нужно сразу по нажатию сделать пост на стену пользователя.

-De- Не очень понял о чем идет речь. Нашел этот самый доверенный каталог, добавил в файл настроек директорию, скомпилировал. Стало еще круче
Цитата:
Error: You cant load without specifing PATH
at MultipartURLLoader/load()[C:\Users\Ermine\Desktop\kukuruzik\MultipartURLLoader.as:98]
SecurityError: Error #2122: Нарушение изолированной среды: BitmapData.draw: http://cs4435.vk.com/u2162398/4a12a82e059724.zip не может осуществить доступ к http://cs11152.userapi.com/u154412759/b_34d43610.jpg. Необходим файл политики, но, когда были загружены эти мультимедийные данные, флаг checkPolicyFile не был установлен.
Содержимое cfg:
Цитата:
app:
C:\Users\Ermine\Desktop

Старый 02.03.2012, 17:34
maxkar вне форума Посмотреть профиль Отправить личное сообщение для maxkar Найти все сообщения от maxkar
  № 5  
Ответить с цитированием
maxkar

Регистрация: Nov 2010
Сообщений: 497
Смотрите ниже. -De- дал правильную ссылку. Только там сообщение не с начала страницы. Вот оно.

Старый 02.03.2012, 17:35
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 6  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
-De- вам дал ссылку почитать мои нравоучения.

Фразы "приложение для вконтакте" и "нашел этот самый доверенный каталог" не совместимы в принципе.
Первая относится к песочнице remote, а вторая к песочнице local-trusted.

По поводу Security Error #2122 при BitmapData#draw(): укажите
Код AS3:
const loaderContext:LoaderContext = new LoaderContext(true);
Судя по http://cs11152.userapi.com/crossdomain.xml в нем есть <allow-access-from domain="*.vk.com" to-ports="80"/>, который разрешает пользоваться пикселями изображений при запросе с этих поддоменов.

Или воспользуйтесь советом.

Security.allowDomain("*") никакого отношения к разрешению распространителя, а тем более к изображениям не имеет. Адью!
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 05.03.2012, 11:27
Фенёк вне форума Посмотреть профиль Отправить личное сообщение для Фенёк Найти все сообщения от Фенёк
  № 7  
Ответить с цитированием
Фенёк

Регистрация: May 2011
Сообщений: 221
И все же нет
Код AS3:
const loaderContext:LoaderContext = new LoaderContext(true);
так увы и не дал должного результата/

dimarik Смотрю ваш блог вроде бы делаю все тоже самое, но никакого рабочего результата это так и не дает. Что занятно
Код AS3:
			VK.api('friends.getAppUsers', {}, gotUsers, errorGetUsers);
			VK.api("photos.getWallUploadServer", {}, responseFromServer, onError);
Если убрать запрос к френдам, все работает как по маслу. Такое впечатление, что один метод "выталкивает" другой...

Добавлено через 24 часа 58 минут
Еще раз просмотрел. Наврал, не заметил

Цитата:
1) Если ваша флешка играется в песочнице REMOTE, то из-за того, что сами загружаемые флешки подгружают в себя флешки с других сайтов, не получится снять скриншот. Если, конечно, внутри последних не прописан правильный Security.allowDomain(). Например, Security.allowDomain("*").
А что делать с картинками?

Я так понял, что косяк возникает из-за того, что на сцену загружены картинки с аватарками пользователей. Как можно обойти?

ЛоадерКонтекст перековырял как только смог.

Старый 07.03.2012, 13:56
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 8  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Вот минимальный пример, который работает у меня. Публикация вконтакте — "без использования контейнера".

Код AS3:
///////////////////////////////////////////////////////////////////////////////
//
//  Copyright (C) 2012. Dimarik
//
///////////////////////////////////////////////////////////////////////////////
 
package
{
 
import flash.display.DisplayObject;
import flash.display.Loader;
import flash.display.LoaderInfo;
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
import flash.events.ErrorEvent;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.events.SecurityErrorEvent;
import flash.net.URLRequest;
import flash.system.LoaderContext;
 
/**
 *  @author				Dimarik
 *  @version			1.0
 *  @langversion		3.0
 *  @playerversion		9.0
 *
 */
[SWF(width="100", height="100", frameRate="12", backgroundColor="#3A4044")]
 
public class VKImageLoading extends Sprite {
 
	//-------------------------------------------------------------------------
	//
	//   Constructor
	//
	//-------------------------------------------------------------------------
 
	public function VKImageLoading() {
		super();
		super.addEventListener(Event.ADDED_TO_STAGE, this.initialize, false, int.MAX_VALUE);
	}
 
 
	//-------------------------------------------------------------------------
	//
	//   Private methods
	//
	//-------------------------------------------------------------------------
 
	private function initialize(event:Event):void {
		super.stage.scaleMode = StageScaleMode.NO_SCALE;
		super.stage.align = StageAlign.TOP_LEFT;
 
		const request:	URLRequest = new URLRequest('http://cs11152.userapi.com/u154412759/b_34d43610.jpg');
		const loader:	Loader = new Loader();
		const context:	LoaderContext = new LoaderContext(true);
		this.dealLoaderInfoListeners(loader.contentLoaderInfo.addEventListener);
		loader.load(request, context);
 
		super.addChild(loader);
	}
 
	private function dealLoaderInfoListeners(method:Function):void {
		method.call(null, Event.COMPLETE,						this.handler_loader);
		method.call(null, IOErrorEvent.IO_ERROR,				this.handler_loader);
		method.call(null, SecurityErrorEvent.SECURITY_ERROR,	this.handler_loader);
	}
 
	//-------------------------------------------------------------------------
	//
	//   Events handlers
	//
	//-------------------------------------------------------------------------
 
	private function handler_loader(event:Event):void {
		const li:LoaderInfo = event.target as LoaderInfo;
		this.dealLoaderInfoListeners(li.removeEventListener);
		const loader:Loader = li.loader;
 
		if (event is ErrorEvent)
			throw event.toString();
		else
			// выбрасывает SecurityError, если доступ запрещен политиками crossdomain.xml
			const content:DisplayObject = loader.content;
 
	}
 
}
}
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 12.03.2012, 11:41
Фенёк вне форума Посмотреть профиль Отправить личное сообщение для Фенёк Найти все сообщения от Фенёк
  № 9  
Ответить с цитированием
Фенёк

Регистрация: May 2011
Сообщений: 221
Есть, нашел косяк, большущее спасибо ) Пропустил, что контекст надо указывать во время load и вообще не в тот класс смотрел ) Еще раз тысячу благодарностей )

Чтобы не потерялось залью сюда, вдруг кому пригодится )
Вложения
Тип файла: rar Модуль друзей.rar (76.3 Кб, 53 просмотров)


Последний раз редактировалось Фенёк; 12.03.2012 в 11:45.
Создать новую тему Ответ Часовой пояс GMT +4, время: 23:03.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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