很早之前,我们可以使用Sandy的摄影机来移动物观察对象物,通过键盘控制摄影机的移动和旋转。今天我们尝试鼠标的交互,通过鼠标交互来控制sandy的对象物。
一、目标
在显示类核心编程里面,Sprite类占有一个很大的席位,通过监听MouseEvent,我们可以实现鼠标的交互。同样的原理,我们可以创建一个立方体对象,通过点击对象进行交互。
二、继承关系:
在看演示之前,我们首先看一下Box类一个继承关系
Package | sandy.primitive |
Class | public class Box |
Inheritance | Box ---> Shape3D ---->ATransformable ---> Node |
Implements | Primitive3D |
由于Box类继承了Shape3D类,我们通过这个类找到一Shape3D一个属性container 属性,通过这个类我们可以返回我们想要的Sprite对象。
container : Sprite
[read-only] The contianer for this object
|
public function get container():Sprite
也就是说通过通过这个属性的借助,可以实现一些鼠标的交互。
如
box.container.buttonMode = true;
box.container.addEventListener(MouseEvent.CLICK, clickHandler);
这样我们的鼠标就可以对Sadny所创建的物体进行交互了。
简单的演示:
其实就是加一个引用那个属性就可以进行鼠标监听了。
效果:
继续我们上面的程序,实现在场景里面复制三个图,对其进行监听。对三个立方体进行颜色材质贴图。
这样,我们可以对其进行更多效果的交互,如链接,或者其他有趣的贴图等等。