Tuesday, October 25, 2011

Transform Tool 2 Sample 2

Hello, this is second post about Transform Tool 2 component I built. 
Let me show you how to connect component with target object. For this purpose I created IConnector interface and 3 classes  that implements it:
  1. SimpleConnector. This class is the simpliest and fastest one, it used to connect transform tool and target object in case they are in the same coordinate space (in the same ui container). Actually it connects transform tool and model of target object, see example below. Press view source context menu to get source code. 

    To simplify you can use SimpleTransformTool which is combined transform tool with simple data connector.

  2. DataConnector. Connector which connects model of target with transform tool. Target of transformation and transform tool can be placed in different coordinate space. To specify target coordinate space you need to pass ui container that holds target. See example below, press view source context menu to get source code.

    There is also combined version DataTransformTool.

  3. And finally UIConnector. Probably the most useful one. It connects UI target with transform tool. It based on DataConnector and automatically creates model object from ui target. Example of using it I showed in previous post.


Source code: Project home page.
ASDoc:  API ASDoc.
Required Flex SDK version: SDK 4.5

5 comments:

  1. HI there i am using this took with TransformTool_2_3_5.swc with flex 4.5 but i am getting errors

    Can you tell me what might be the issue

    ReplyDelete
  2. ArgumentError: Error #1063: Argument count mismatch on mx.utils::MatrixUtil$/getConcatenatedMatrix(). Expected 1, got 2.
    at com.vstyran.transform.utils::TransformUtil$/getMatrix()[C:\Users\Xyuha\Adobe Flash Builder 4.5\TransformTool\src\com\vstyran\transform\utils\TransformUtil.as:37]
    at com.vstyran.transform.connectors::DataConnector/setToolPanel()[C:\Users\Xyuha\Adobe Flash Builder 4.5\TransformTool\src\com\vstyran\transform\connectors\DataConnector.as:74]
    at com.vstyran.transform.connectors::UIConnector/setToolPanel()[C:\Users\Xyuha\Adobe Flash Builder 4.5\TransformTool\src\com\vstyran\transform\connectors\UIConnector.as:109]
    at com.vstyran.transform.view::TransformTool/addedToStageHandler()[C:\Users\Xyuha\Adobe Flash Builder 4.5\TransformTool\src\com\vstyran\transform\view\TransformTool.as:384]
    at flash.display::DisplayObjectContainer/addChildAt()
    at mx.managers::SystemManager/preloader_preloaderDoneHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\SystemManager.as:2540]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.preloaders::Preloader/displayClassCompleteHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\preloaders\Preloader.as:559]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.preloaders::SparkDownloadProgressBar/initCompleteHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\preloaders\SparkDownloadProgressBar.as:1087]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.preloaders::Preloader/dispatchAppEndEvent()[E:\dev\hero_private\frameworks\projects\framework\src\mx\preloaders\Preloader.as:362]
    at mx.preloaders::Preloader/appCreationCompleteHandler()[E:\dev\hero_private\frameworks\projects\framework\src\mx\preloaders\Preloader.as:567]
    at flash.events::EventDispatcher/dispatchEventFunction()
    at flash.events::EventDispatcher/dispatchEvent()
    at mx.core::UIComponent/dispatchEvent()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:12727]
    at mx.core::UIComponent/set initialized()[E:\dev\hero_private\frameworks\projects\framework\src\mx\core\UIComponent.as:1667]
    at mx.managers::LayoutManager/doPhasedInstantiation()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\LayoutManager.as:819]
    at mx.managers::LayoutManager/doPhasedInstantiationCallback()[E:\dev\hero_private\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1157]

    ReplyDelete
  3. Make sure you are using flex 4.5 SDK.

    ReplyDelete
  4. Hi Volodymyr Styranivskyy,

    Thanks for your great Transform tool. I am facing some problem to set target at run time.

    I put a UITransformTool in a Group. At run time i am loading AVM1 cliparts using Forcible Loader. When AVM1 is loaded completely i get it as moviclip. Then i add this movie clip to SpriteVisualElement which is the child of same group. But transform tool is not working.

    could you help me how can i add this transform tool for run time loaded vector images?

    thanks,


    With Regards
    Ganesh

    ReplyDelete