0

我需要在我的 Flash Web 应用程序中嵌入矢量图形编辑器。图形编辑器应该能够执行以下操作:

  • 画线(画笔工具)
  • 擦除
  • 比例图
  • 创建文本块
  • 使用图像作为绘图的背景(上传图像并将其用作背景)。

用户所做的更改应发送到其他活动客户端。我试图找到以下问题的答案。

  1. 画线应该如何实现?我的意思是:用户在屏幕上移动鼠标(鼠标左键向下),我应该如何处理 MOUSE_MOVE 事件?请注意,在绘制之后,用户可能希望缩放绘图。
  2. 擦除应该如何实现?请注意,我无法将擦除实现为绘制白线(因为我可以有背景)。
  3. 存放拉丝翼的最佳方法是什么?序列化一组命令?
  4. 最后,如何通知其他客户有关更改的信息?

将感谢任何关于如何创建类似于描述的图形编辑器的文章或教程(无论在什么平台或编程语言上)。

请不要害羞 :) 任何想法都非常感谢!

4

2 回答 2

1

我会尝试回答一些问题,因为我从来没有做过所有的事情。

  1. 取决于工具,最简单的实现是仅绘制直线的铅笔工具。更复杂的工具,比如铅笔,应该跟随你可以移动的锚点,实际上并没有那么不同,事实上,很容易,因为你需要简单地使用从用户那里收到的锚点参数。最复杂的工具是跟随画笔,因为它在画布上任意移动。您需要为矢量形状实现“联合”操作。这并不容易,需要一些数学才能找到交点。必须有专门的文献来描述如何做到这一点。您需要创建更小的形状,以离散间隔对鼠标指针的位置进行采样,然后将它们“联合”在一起。

  2. 擦除与上述画笔工具非常相似。

  3. 我会写 SWF 格式,最坏的情况 - SVG。SWF 的优点是很容易在同一程序/环境中使用图纸。SVG 的优点是即使在没有 Flash 的情况下也可以使用它。

也许一个很好的起点可能是查看 Inkscape 源代码(可能是最流行的开源矢量图形编辑器)。坦率地说......这是一个有缺陷/不稳定的程序,但至少其中一些应该可以工作。

于 2012-09-20T13:40:08.440 回答
1

这听起来很难。这是一种起初看起来很容易的项目,但实际上要获得与真正的矢量编辑器相当的任何东西真的很复杂。

I would try to find an existing library to embed rather than doing it myself. I tried a few searches but couldn't find a functional vector editor in Flash. On the other hand, there are plenty in HTML5/Javascript like svg-edit. Maybe you can figure out a way to launch the Javascript editor and funnel the results back into Flash?

于 2012-09-20T15:50:54.193 回答