Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash/AS3-如何获得在Flash中绘制的路径点_Flash_Actionscript 3_Animation - Fatal编程技术网

Flash/AS3-如何获得在Flash中绘制的路径点

Flash/AS3-如何获得在Flash中绘制的路径点,flash,actionscript-3,animation,Flash,Actionscript 3,Animation,是否可以在flash中绘制路径,并从AS访问点 例如,如果我有一张地图,并且我沿着各种道路添加了隐藏路径,那么我以后会想通过代码沿着这些预定义路径设置交通或增长线的动画。在世界领先的18岁可编写脚本的矢量绘图应用程序中,你可能认为这是合理的,但你错了 您可以通过使用动画工具(gui)在一条路径(比如超过100帧)上来回移动一个电影剪辑,然后通过AS3控制电影剪辑的内容和动画的播放,从而获得所需的效果 否则,您需要在Illustrator或等效工具中绘制路径,通过(例如)SVG导出并导入数据。只要

是否可以在flash中绘制路径,并从AS访问点


例如,如果我有一张地图,并且我沿着各种道路添加了隐藏路径,那么我以后会想通过代码沿着这些预定义路径设置交通或增长线的动画。

在世界领先的18岁可编写脚本的矢量绘图应用程序中,你可能认为这是合理的,但你错了

您可以通过使用动画工具(gui)在一条路径(比如超过100帧)上来回移动一个电影剪辑,然后通过AS3控制电影剪辑的内容和动画的播放,从而获得所需的效果

否则,您需要在Illustrator或等效工具中绘制路径,通过(例如)SVG导出并导入数据。只要您实际上不需要绘制路径,这就可以工作,因为显然,AS3只能绘制二次贝塞尔,而Illustrator只能绘制/导出三次贝塞尔。

您可以创建对象数组,保存路径的所有检查点。当你需要很好地展示你的道路的时候。你只需要一行一行地画出来:从点1到点2的线,从点2到点3的线。。等最好是在单独的精灵上,在你的贴图对象上面,这样你以后就可以很容易地从舞台上删除它


通过这种方式,可以为每条路径设置点阵列。这里唯一困难的部分是创建所有这些数组。

我从未尝试过,但从技术上讲,应该可以使用类似的库,这是一个用actionscript编写的SWF解析器

您必须使用解析器库解析包含路径的SWF,然后从输出中提取所需的坐标

不过,这个过程在我看来非常落后。一种更简单、更可行的方法是在Flash中绘制路径,选择路径并使用以下方式导出:
File>export>export Selection…
,然后导出为
Adobe FXG
。这将把您的路径导出为文件


然后,您可以在flash中解析FXG文件,并提取您感兴趣的路径坐标。实施起来应该不会那么难。还可以查看,因为它包含有关如何存储坐标和应如何解释坐标的一些信息。

如果您提前知道路径中的点,可以将它们存储在数组或向量中,并手动处理图形。查看图形类中的绘图方法


如果您不想走这条路,您可以应用一些代码向导来完成这项工作。如果知道起始点,有一种可能的方法可以做到这一点:在具有特定颜色的形状上绘制隐藏路径(例如,0x00ff0000,完全透明的红色)。然后将形状绘制到BitmapData实例。在每一帧中,查找与当前位置相邻的完全透明的红色像素(使用BitmapData的getPixel方法),然后移动到该点。注意,这种技术不支持交叉口。

好问题-我不知道如何实现这一点。很高兴被证明是错误的。-1因为这根本不实际。所以你要测量你需要的每一个坐标,并把它作为路径数组中的一个条目写在代码中?如果需要修改路径的某些部分,该怎么办?重新进行整个过程?实用性取决于他需要多少点来充分描述路径。这对于少量的分数来说仍然是合理的。这一点开始被大量的分数打破;我同意这一点。在这种情况下,如果用户有雄心壮志,他们可以创建自己的绘图应用程序来为他们管理点。@bummzack完全同意这不是最好的方法。但是,我不想在代码中存储所有坐标,我考虑的是DB,调用服务器,获取带有坐标的xml,将它们放入数组,绘制。当然,应该有一个后台工具来编辑坐标。我认为如果你需要存储大量的数据,DB部分是非常明显的。我不会把这作为一个答案,但如果谷歌+1或Facebook喜欢,我会给出其中一个。这两种方法的问题是,你加载文件,然后处理它们而不产生输出。为了使用它们,您必须再次处理它们,并在屏幕上显示结果。难道没有办法从已经创建的精灵实例中获取精灵的路径信息或drawPathData吗?@iND No,很遗憾,这是不可能的。唯一的办法是走另一条路。。拥有数据并使用数据绘制路径。拥有该路径将不允许您获取数据。