Показать сообщение отдельно
Старый 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);
		}