最近我在一个使用Flex的项目中工作。它是一个照片编辑项目。我使用了画布,并使用代码canvas.addChild(image)
在该画布中拍摄了一张图片。现在我可以通过使用移动代码自由移动图像。图像在画布内和画布外移动。我只想在画布内移动图像/孩子,而不是在外面。我怎样才能做到这一点?如何才能将孩子只在父母内部移动?
0
A
回答
1
有两种方法可以做到这一点:
- 边界矩形
- 滚动矩形(或面罩)
假设你的“移动代码”有点像初始化的Event.ENTER_FRAME处理器onClick,你想使它成为图像不能离开父Canvas的边界。
第一种情况(边界矩形)将允许您拖动图像内的图像,但您将始终能够看到整个图像。这是图像裁剪器的工作原理。
要创建一个边界矩形,您必须编写一个相当详细的方法,但其背后的想法很简单。只需从画布中获取边界矩形,并且不要让image.x
低于0并且不要让image.x + image.width
超出canvas.width
。与高度相同。这里有一个样本Image Cropper in Flex(和the source)。看看他们是如何做到的细节。
第二种情况(滚动矩形)可以让您像this Flex Pan/Zoom Map(此处为the source)所示的那样创建更多的像平底锅一样的容器。此外,右侧的Flex Image Cropper中的大图像是第二种情况的示例,但它们没有拖动。这就要求你在画布上操作scrollRect属性的位置。 scrollRect
属性是定义Canvas'“视口”的flash.geom.Rectangle
。然后您更改/更新verticalScrollPosition
和horizontalScrollPosition
属性,因此它是向后的(与边界矩形相比)。
我认为如果您在画布上将clipAndEnableScrolling
设置为true,并且在其内部拖动一个子图像(和image.includeInLayout = true
),它应该剪切图像以仅显示在画布内。但我猜你想要案例1.只要搜索这些属性,你会发现一些很好的例子在谷歌。
祝你好运,应该是一个有趣的项目。
兰斯
相关问题
- 1. 如何将孩子fxml的父母换成其他父母?
- 2. MDI父母孩子
- 3. 如何在Native React中的孩子内部调用父功能
- 4. 父母和孩子在Css
- 5. 如何在Rails中建立父母的孩子只有一次
- 6. 我怎样才能沟通父母和孩子在Android的活动
- 7. 只有当父母没有额外的孩子时,才能删除嵌套LI的父母
- 8. 孩子不能呆在父母的div内
- 9. 如何从父母送模型孩子
- 10. 如何向孩子保存父母?
- 11. 如何让特定父母的孩子?
- 12. 如何找出孩子的父母?
- 13. 如何写寻找父母和孩子
- 14. 如何从父母的孩子分配父母的变量?
- 15. 将父母转换为孩子
- 16. 将父母从孩子的iframe
- 17. 选择孩子的父母
- 18. has_many孩子和has_many父母
- 19. css定位孩子/父母
- 20. 孩子和父母对象
- 21. renice对父母renice孩子?
- 22. 如何完成孩子活动中的父母活动
- 23. 添加新孩子时将新孩子与其父母链接
- 24. 如何给一个父母div内的第三个孩子div
- 25. 如何让孩子只用CSS自动适应父母的宽度?
- 26. 如何调换父母和孩子sexp中的功能符号?
- 27. 如果专注于父母的孩子显示父母
- 28. 检查父母如果孩子检查
- 29. NHibernate,通过父母添加孩子vs设置对孩子父母的引用
- 30. (Doctrine)从父母与孩子有n个关系的孩子加入父母