flex3 ObjectHandlers2.0使用

   我前面有篇文章介绍了objectHandlers1.0的用法,今天看了下2.0,发觉改变还蛮大的,先看看2.0的用法吧。

//默认的初始化objectHandlers
objectHandles=new ObjectHandles(this);
//然后注册需要控制的组件
objectHandles.registerComponent(img, img);

  上面是默认的注册方式,完成这两句话,就可以看到效果


flex3 ObjectHandlers2.0使用

 

handles.push(new HandleDescription(HandleRoles.ROTATE, new Point(100, 50), new Point(20, 0)));
objectHandles = new ObjectHandles( this , null, new ClassFactory(CircleHandle));
objectHandles.registerComponent(img1, img1, handles);

  以上是通过工厂创建objectHandlers,效果为♢的拖拽点,变为绿色的o,通过handler注册组件可以旋转,默认是可以旋转,任意缩放,如果像上面只HandleRoles.ROTATE 的话,效果就是只能在(100,50),(20,0)这两个点旋转。
flex3 ObjectHandlers2.0使用
flex3 ObjectHandlers2.0使用
 
 


flex3 ObjectHandlers2.0使用

 

var decoratorManager:DecoratorManager = new DecoratorManager( objectHandles, drawingLayer );
				decoratorManager.addDecorator( new AlignmentDecorator() );

  以上代码是创建自动吸附效果的横线和折现,如上图所示。AlignmentDecorator是对其的装饰器,还有其他几种装饰器,WebDecorator,OutlineDecorator,大家可以试试。。。

 

 图片旋转使用的<image>组件,下面的文本框使用的是<textArea>,我发现在旋转的时候,文本框的字会消失,看到我上面两幅图片的效果就知道,我还没搞清楚是怎么回事。。。。

 

 另外objectHandlers2.0支持flex4。。。以后会上传flex4利用objectHandlers2.0的例子。。

  附上了代码。。