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

Вернуться   Форум Flasher.ru > Flash > Flash Приложения: AIR, Zinc и тд.

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

Регистрация: May 2014
Сообщений: 37
Question BitmapData -> FREBitmapData

И снова я с вопросом про ane, действие происходит с android.

Задача передать в java картинку для дальнейшей обработки. По описанию найденному в интернете все должно быть просто

шаг 1. отправляю BitmapData (AS3)

_context.call("MarkerSetIcon",id,new BitmapData(50,50,false,0xffffff));

шаг 2. ловлю как объект FREBitmapData

FREBitmapData bitmapData=(FREBitmapData) args[1];
bitmapData.acquire();
Bitmap bitmap=Bitmap.createBitmap(
bitmapData.getWidth(),
bitmapData.getHeight(),
Config.ARGB_8888);
bitmap.copyPixelsFromBuffer(bitmapData.getBits());
bitmapData.release();

Проблема в строчке: FREBitmapData bitmapData=(FREBitmapData) args[1];
CATLOG выдает безымянную ошибку (printnl needs a message).

Понимаю что, что-то не понимаю, но что???

Старый 28.03.2016, 23:19
undefined вне форума Посмотреть профиль Отправить личное сообщение для undefined Найти все сообщения от undefined
  № 2  
Ответить с цитированием
undefined

Регистрация: Oct 2006
Сообщений: 2,282
думаю, вместо args[1] должен стоять некий параметр, передаваемый в обработчик.Где вообще это происходит?

Старый 28.03.2016, 23:31
Nnget вне форума Посмотреть профиль Отправить личное сообщение для Nnget Найти все сообщения от Nnget
  № 3  
Ответить с цитированием
Nnget

Регистрация: May 2014
Сообщений: 37
Это происходит в классе FREFunction

передал id(args[0]) и BitmapData(args[1]).

Код AS3:
public class MarkerSetIcon implements FREFunction {
 
	@Override
	public FREObject call(FREContext context, FREObject[] args) {
		try {
			int id=args[0].getAsInt();
			MarkerGoogleMaps marker;
 
			FREBitmapData bitmapData=(FREBitmapData) args[1];
			bitmapData.acquire();
			Bitmap bitmap=Bitmap.createBitmap(
				bitmapData.getWidth(),
				bitmapData.getHeight(),
				Config.ARGB_8888);
			bitmap.copyPixelsFromBuffer(bitmapData.getBits());
			bitmapData.release();
			marker.setImage(bitmap);
		} catch (Exception e) {
			Log.e("GM", e.getMessage());
		}
		return null;
	}
 
}

Старый 29.03.2016, 00:42
illuzor вне форума Посмотреть профиль Отправить личное сообщение для illuzor Найти все сообщения от illuzor
  № 4  
Ответить с цитированием
illuzor
 
Аватар для illuzor

Регистрация: Dec 2010
Адрес: Ярославль
Сообщений: 1,255
В args флешовая битмапдата точно в виде FREBitmapData? Там не массив байтов случаем? (byte[])?

Старый 29.03.2016, 01:27
ShockWave512 вне форума Посмотреть профиль Отправить личное сообщение для ShockWave512 Посетить домашнюю страницу ShockWave512 Найти все сообщения от ShockWave512
  № 5  
Ответить с цитированием
ShockWave512

Регистрация: Dec 2007
Адрес: NA
Сообщений: 741
Отправить сообщение для ShockWave512 с помощью Skype™
Читал что аргументом можно передавать только простые типы, int, Number, String.

Старый 29.03.2016, 15:41
Nnget вне форума Посмотреть профиль Отправить личное сообщение для Nnget Найти все сообщения от Nnget
  № 6  
Ответить с цитированием
Nnget

Регистрация: May 2014
Сообщений: 37
И так. В итога все были не правы.
Вынужден был отдельно создать ane для проверки и искать информацию.
В итоге BitmapData (AS3) можно в качестве аргумента передавать и получать как (FREBitmapData). И Более того ее можно возвращать как результат.

В моем примере:
1)загружаем в AS3 из сети BitmapData загоняем в функцию ane.
2)в java преобразуем из FREBitmapData в Bitmap,
3)создаем новый FREBitmapData, ложим данные из Bitmap
4)их возвращаем.
5)получаем в AS3 BitmapData
6)преобразуем в Bitmap и выводим на экран

Класс java:
Код AS3:
	@Override
	public FREObject call(FREContext context, FREObject[] args) {
		FREBitmapData res=null;
		try {
			FREBitmapData inputValue = (FREBitmapData)args[0];
			inputValue.acquire();
			int width = inputValue.getWidth();
			int height = inputValue.getHeight();
			Bitmap bmp = Bitmap.createBitmap(width, height, Bitmap.Config.ARGB_8888);
			bmp.copyPixelsFromBuffer(inputValue.getBits());
			inputValue.release();
 
			int size     = bmp.getRowBytes() * bmp.getHeight();
			res=FREBitmapData.newBitmapData(bmp.getWidth(), bmp.getHeight(), true,new Byte[]{(byte)0xff, (byte)0xff, (byte)0xff, (byte)0xff});
			res.acquire();
			bmp.copyPixelsToBuffer(res.getBits());
 
			res.release();
		} catch (Exception e) {
			Log.i("testBitmapData", "error: "+e.getMessage());
		}
 
		return res;
	}
класс SWC
Код AS3:
	public class TestBitmapData
	{
		private static var context:ExtensionContext;
 
		public function TestBitmapData()
		{
		}
 
		public static function init():void
		{
			if(!context) context=ExtensionContext.createExtensionContext("com.nngames.testbitmapdata",null);
		}
 
		public static function setBitmapData(value:BitmapData):BitmapData
		{
			if (context)
			{
				return BitmapData(context.call('goBitmapData',value));
			}
			return null;
		}
	}
Тестовое приложение:
Код AS3:
		public function testBitmapDataAne()
		{
			super();
 
			// support autoOrients
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			var url:URLRequest=new URLRequest('https://www.google.ru/images/nav_logo242.png');
 
			TestBitmapData.init();
 
			loader.contentLoaderInfo.addEventListener(Event.COMPLETE,onComplete);
			loader.load(url);
		}
 
		protected function onComplete(event:Event):void
		{
			var b:Bitmap=Bitmap(loader.content);
			var bd:BitmapData=TestBitmapData.setBitmapData(b.bitmapData);
			var b1:Bitmap=new Bitmap(bd);
			addChild(b1);
		}

Создать новую тему Ответ Часовой пояс GMT +4, время: 16:50.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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