|
|
|||||
Регистрация: Jun 2009
Сообщений: 64
|
Рисование, сохранение, отображение
Подскажите, плз, как человеку, только начинающему разбираться во флеше, как реализовать следующий функционал (что посмотреть, почитать, может, примеры кода):
1) дать возможность пользователю что-нибудь нарисовать (для простоты, например, одним цветом и одной толщиной) 2) сохранить нарисованное в строку 3) отобразить нарисованное из строки |
|
|||||
Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
|
package { import flash.display.Graphics; import flash.display.Sprite; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.MouseEvent; public class DrawXA extends Sprite { private var _str:String = ''; public function DrawXA() { super(); stage.doubleClickEnabled = true; graphics.lineStyle(1,0xFF0000,1); stage.addEventListener(MouseEvent.DOUBLE_CLICK,onDoubleClick); stage.addEventListener(MouseEvent.MOUSE_DOWN,onMouseDown); stage.addEventListener(MouseEvent.MOUSE_UP,onMouseUp); stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; } private function onMouseUp(e:MouseEvent):void { stage.removeEventListener(MouseEvent.MOUSE_MOVE,onMouseMove); } private function onDoubleClick(e:MouseEvent):void { if (!_str) { trace (_arCoor.join('|')); } else { var ar:Array = _str.split('|'); var i:uint = 0; var gr:Graphics = graphics; while (i<ar.length) { if (ar[i] == -1) { gr.moveTo(ar[i+1],ar[i+2]); i += 3; } else { gr.lineTo(ar[i],ar[i+1]); i += 2; } } } } private var _arCoor:Array = new Array(); private function onMouseMove(e:MouseEvent):void { _arCoor.push(e.stageX,e.stageY); graphics.lineTo(e.stageX,e.stageY); } private function onMouseDown(e:MouseEvent):void { _arCoor.push(-1); _arCoor.push(e.stageX,e.stageY); graphics.moveTo(e.stageX,e.stageY); stage.addEventListener(MouseEvent.MOUSE_MOVE,onMouseMove); } } } |
|
|||||
Регистрация: Jul 2009
Адрес: Москва
Сообщений: 99
|
А по поводу сохранения - http://designreviver.com/tutorials/a...es-from-flash/
|
|
|||||
Регистрация: Jun 2009
Сообщений: 64
|
r_r_f_r, вау! спасибо огромное!
если какие-нить способы сжать данные рисунка? я так понимаю, что мы сохраняем в массив координаты каждой точки, для сложного рисунка строка может быть оооочень длинной Dimax4d, тот способ, увы, не подходит, т.к. мне надо сохранять данные в строку, а не в jpeg |
|
|||||
Незначительно сжать можно... Но вряд ли вас это сильно спасет.
|
|
|||||
Регистрация: Sep 2008
Адрес: Москва
Сообщений: 224
|
Писать в бинарном формате. Другого не дано.
|
|
|||||
Цитата:
Цитата:
он же координаты хранить собирается, а не пиксели. да даже если пиксели, они вполне себе хорошо сжимаются
__________________
я могу стать всем, если только захочу Последний раз редактировалось Felicast; 17.09.2009 в 12:56. |
|
|||||
Насколько я понял, нужна строка... Ну можно сжать координаты в половину примерно... Если шаманить, можно %-ов 70 выжать... Но если я правильно понял, заморачиваться автор сильно не хочет... хз... в общем...
Согласен, даже 50% это значительно, но я другое несколько имел ввиду, сорри |
Часовой пояс GMT +4, время: 04:20. |
|
« Предыдущая тема | Следующая тема » |
Теги |
отображение , рисование , сохранение |
Опции темы | |
Опции просмотра | |
|
|