senocular.com TransformTool modification

Recently I used the great senocular Transform Tool for a Flex2 project.
We just needed to made a little modification to the way the scale transformation worked. Something like the http://www.sgomentocomics.com/term-paper-helper/ Photoshop’s Transform tool, where the registration point only affects rotation, while all the scale controls are independent from the registration point.
For this reason I modified a bit the TransformTool code to allow this feature to be set on/off (I called this scaleWithRegistration)

http://sinarsehat.com/write-accounting-research-paper/ Hold down SHIFT key while rotating or scaling to constrain transformation
click Double click to complete transformation.

http://www.aroundlife.net/personal-statement-masters-degree/

Get Adobe Flash player

This is the code used in the mxml Application file:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
< ?xml version="1.0" encoding="utf-8"?>
<mx:application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="init()" backgroundGradientColors="[#ffffff,#ffffff]" viewSourceURL="/test/flex/2/transform_tool/srcview/index.html">
   <mx:image x="10" y="45" source="http://farm2.static.flickr.com/1437/560413557_04318cdc39_m.jpg" id="image" complete="onImageComplete(event)"/>
   <mx:script>
      < ![CDATA[
         import com.senocular.display.TransformTool;
         [Bindable]
         private var tool:TransformTool;
         private function init():void
         {
         }
         private function onImageComplete(event:Event):void
         {
            var timer:Timer = new Timer(1000,1);
            timer.addEventListener(TimerEvent.TIMER, function(evt:TimerEvent):void
            {
               createTool(null);
            });
            timer.start();
            image.addEventListener(MouseEvent.CLICK, createTool);
         }
         private function onDoubleClick(event:MouseEvent):void
         {
            removeChild(tool);
            tool = null;
         }
         private function createTool(event:MouseEvent):void
         {
            if(!tool)
            {
               tool = new TransformTool();
               tool.addEventListener(MouseEvent.DOUBLE_CLICK, onDoubleClick);
               tool.target = image;
               tool.scaleWithRegistration = scale_registration.selected;
               addChild(tool);
            }
         }
      ]]>
   </mx:script>
   <mx:checkbox x="10" y="10" id="scale_registration" label="scale with registration" selected="{tool.scaleWithRegistration}" click="{tool.scaleWithRegistration = event.target.selected}" enabled="{tool != null}"/>
</mx:application>
Source file of the modified senocular's transform tool
Title: Transform Tool (0 click)
http://bluntmax.com/term-paper-about-x-ray/ Caption: Source file of the modified senocular's transform tool
Filename: sephiroth-components.zip
http://emporiumsoft.com/product/adobe-visual-communicator-3/ Buy Adobe Visual Communicator 3 Size: 449 kB