![]() |
|
||||||||||
|
|||||
|
Я загружаю картинку с помощью bytearray, добавляю на сцену ее bitmapdata.
Подскажите, пожалуйста, как мне совместить (объединить) следующую загружаемую картинку с уже имеющейся (т.е. чтобы отображались обе)? Т.к. сейчас происходит наложение одной на другую. Наиболее приближенный вариант получился с помощью merge Но при последующей загрузке картинок видимость предыдущих постепенно затирается. Последний раз редактировалось dimarik; 14.04.2011 в 13:17. |
|
|||||
|
Приведу код для ясности:
var loader : Loader = new Loader(); var completeLoad :Function = function( in_event : Event ) : void { var myBitmap : Bitmap = Bitmap( loader.content ); var data : BitmapData = myBitmap.bitmapData; myBit.merge( data, new Rectangle(0,0,300,400), new Point(0,0), 100,100,0,0 ); var bm:Bitmap = new Bitmap( myBit ); mSkinOutput.addChild( bm ); } loader.contentLoaderInfo.addEventListener(Event.COMPLETE, completeLoad); loader.loadBytes( myByteArray ); Последний раз редактировалось dimarik; 14.04.2011 в 13:16. |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Лучше загрузить картинку через метод load(), а
для совмещения картинок намного лучше подойдет метод copyPixels класса BtimapData с последним параметром mergeAlpha = true Ну или заюзать JPGDecoder, сконвертить байт массив в BitmapData и уже потом исползовать copyPixels() Последний раз редактировалось goodguy; 14.04.2011 в 13:22. |
|
|||||
|
Попробовала copyPixels
Все равно получается, что происходит копирование новой картинки без совмещения со старой... |
|
|||||
|
Banned
[+1 05.11.11]
[+1 09.08.11] Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
|
Зачем вообще конвертировать картинку в байт массив, чтобы потом опять конвертировать в картинку?
Цитата:
|
|
|||||
|
Я рисую на сцене линию, потом перевожу ее в bytearray. Отправляю полученный массив на сервер, с которого другие флешки получают информацию (посредством сокетов) и должны отобразить на своих экранах нарисованную мной линию. Следующая линия, которую я рисую, должна отображаться у других юзеров вместе с первой. Постоянно полностью отправлять получающийся рисунок считаю нецелесообразно с точки зрения нагрузки на сервер.
|
|
|||||
|
С точки зрения нагрузки на сервер тем более не рационально отправлять линию целиком. Можно отправлять:
- id кисти - размер кисти - id цвета - прозрачность цвета - начальную точку - конечную точку Если точек много, то чтобы не грузить сервер пакетами на каждый MouseMove можно отправлять сразу небольшой массив, если он весь нарисован одной кистью и одним цветом. Далее, на клиенте проще всего это все рисовать в векторе. а затем через каждые N пакетов отрисовывать это все в BitmapData
__________________
...вселенская грусть |
|
|||||
|
Линия может быть совершенно произвольной формы ( формируется по DOWN/UP мыши ), а также с заливкой и т.п.
Поэтому как-то больше склонилась к передаче данных через массив. |
|
|||||
|
Ну заливка - это отдельное действие, так? - ну так его и надо передавать. Вообще, я бы сделал примерно такую систему сообщений на сервер:
- выбрана кисть - выбран цвет - начал рисовать в точке (x1, y1) - ... несколько точек по пути - закончил рисовать в точке (x2, y2) - выбрал заливку - нажал "залить" в таком-то месте При таком раскладе гораздо проще всем, ибо передается не само состояние, а только его изменение
__________________
...вселенская грусть |
![]() |
![]() |
Часовой пояс GMT +4, время: 00:54. |
|
|
« Предыдущая тема | Следующая тема » |
|
|