Jump to content

Search In
  • More options...
Find results that contain...
Find results in...

GreenSock last won the day on July 24 2019

GreenSock had the most liked content!


  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by GreenSock

  1. Actually, I didn't remove the items from the _items Array because deleting an object just removes it from the stage, but it is entirely possible that you'd want to add it back to the stage. So deleting isn't the same as removing. But I did need to alter some deletion-related stuff in the class (which I just did). Please download it from the link you were provided when you purchased TransformManager and let me know if that works better for you. By the way, where did you see the "selectAll()" method? I couldn't find it anywhere I assume you added that, right?
  2. When you say it "doesn't work", do you mean the text disappears? This actually has nothing to do with TransformManager. It's just that Flash won't render text in a rotated TextField unless you embed the font. Once you embed the font, you should be fine.
  3. Sorry, the applications I built with uploading/transforming capabilities were done for companies who had confidentiality agreements with me, and the applications weren't for the general web audience, so I can't post links. But I'd guess that at least half of the customers who purchase TransformManager use it for precisely that purpose (uploading custom images and allowing the end user to interact/scale/rotate/move them). Keep in mind as well that there's a 30-day money back guarantee so if you get TransformManager and don't like it, you can get a full refund. Customers seem thrilled with it, though - check out some of the comments and reviews on the site. http://blog.greensock.com/transformmanageras3/
  4. Oh, absolutely. TransformManager wouldn't handle uploading the image (you'd write your own code for that part), but it can definitely handle the transformations (scale/rotate/move) of an image that gets uploaded. Everything is dynamic, so it's not like you need to apply TransformManger to clips in the Flash IDE before publishing. I know of many applications that use TransformManager for dynamically-loaded images (I've built several personally). Does that answer your question?
  5. I'd need to see your code/FLA to know what's going on, but I'm 99.99% sure it has nothing to do with a bug in TweenLite/Max. I just tested a mask while blurring the masked object and it worked perfectly. Maybe there's something different about my setup though. Please post code (or even better, a simple FLA that demonstrates the issue)
  6. Great catch. Thanks for letting me know and providing a fix. I just dropped it in now. Cheers!
  7. Use my MatrixTools class and try something like this: function getUnrotatedWidth($mc:DisplayObject):Number { var bounds:Rectangle = $mc.getBounds($mc); return bounds.width * MatrixTools.getScaleX($mc.transform.matrix); } function getUnrotatedHeight($mc:DisplayObject):Number { var bounds:Rectangle = $mc.getBounds($mc); return bounds.height * MatrixTools.getScaleY($mc.transform.matrix); }
  8. Snapping to a grid is not currently supported, no. Sorry. But feel free to add the functionality - you get the raw source code when you purchase TransformManager (not just a SWC or something).
  9. Glad to hear it, Russell. I sure appreciate the endorsement. Enjoy.
  10. Thanks for the suggestion. I incorporated the changes in the latest files. Cheers!
  11. I have added the getters/setters. Thanks for the suggestion.
  12. Are you using the AS2 or AS3 version?
  13. Actually, only TransformItems dispatch DESELECT events because TransformManager could have multiple items selected, so it could be confusing for it to dispatch DESELECT events every time PART of the selection was deselected, etc. Instead, it dispatches SELECTION_CHANGE events. It's easy to find out when everything has been deselected, though, by checking the TransformManager's selectedItems Array length when the SELECTION_CHANGE event gets fired. Like this: myManager.addEventListener(TransformEvent.SELECTION_CHANGE, onSelectionChange); function onSelectionChange($e:TransformEvent):void { trace("Changed selection. Items just selected/deselected (changed): " + $e.items.length + ", total items now selected: " + myManager.selectedItems.length); } (Sorry I didn't answer this sooner - the forum never sent me the notification e-mail)
  14. My apologies. I neglected to update the link URL in the e-mail. I have placed the files at the URL in the e-mail now. Again, sorry for the confusion.
  15. Well, the AS3 version allows you to do pretty much everything via code, so it's not limited to user interaction driven changes. If you want to add some custom functionality, you certainly should be able to and then just use the scaleSelection() and/or rotateSelection() methods to accomplish what you're after. But no, TransformManager doesn't have any automated ways to accommodate scaling/rotating by clicking anywhere on the object(s). Sorry.
  16. What exactly are you adding to the TransformManager? Maybe you're adding the parent of the object that you're trying to get the x/y coordinates of? In that case, TransformManager will make all the changes to the parent which has no effect on the child's properties.
  17. Not sure - how are you trying to read the x/y data? TransformManager doesn't do anything fancy that would hide that info. It should be as simple as myObject.x and myObject.y. Are you using it in Flex? There are several bugs in the Flex framework (acknowledged by Adobe) that prevent properties from being updated by matrix transformations, so maybe that's the problem. See if myObject.transform.matrix.tx and myObject.transform.matrix.ty give you the results you're after.
  18. Yep, it's because you're removing the item from the stage without doing a removeItem() or destroy() of the TransformItem first. I updated the class just now, though, to accommodate this sort of thing, so feel free to get it from the URL in your purchase confirmation e-mail. That should solve it.
  19. Yep, that looks like the correct code. It's not working? I just tested it and it worked great for me. You're using the AS3 version, right? The AS2 version doesn't have that feature.
  20. Yep, that's normal. You need to use a Matrix when you draw() it to get the effect you're after. I don't remember all the specifics off the top of my head, but I think you just use the DisplayObject's transform.matrix and then for the Rectangle, you use the DisplayObject's bounds, like myObject.getBounds(myObject.parent). Google is your friend
  21. Did you wait to addItem() until your image was COMPLETELY loaded? That's the most common mistake people make with this type of thing. TransformManager needs accurate measurements of the item so that it can correctly render the handles, but if the image hasn't fully loaded AND initted, it will not report accurate width/height values. You can also call the update() method on the TransformItem instance associated with your image which forces it to re-measure things, but that still won't do any good until after the image has fully loaded.
  22. The problem is that the XML data will be Strings, not native objects/properties/arrays/functions. For example, it would be like saying ease:"Back.easeOut" instead of ease:Back.easeOut. The first one doesn't point to any real easing function/equation - it's just text. You need to parse your data so that it ends up being native objects/properties/arrays/functions. I authored a class that may help to at least translate the XML data into native objects/arrays (XMLParser/XMLManager - http://blog.greensock.com/xmlparseras2/) but you'd still need to handle making your easing equations point to the right functions. Maybe write a function that translates between the string representation of the function and the real function, like: function findEase($ease:String):Function { switch ($ease) { case "Back.easeOut": return Back.easeOut; case "Back.easeIn": return Back.easeIn; ... } } And then loop through your parsed xml data and translate the eases. Just an idea.
  23. You're right. This post was old (and I updated it now). TweenMax.allTo() has been replaced with TweenGroup.allTo() and trust me, it's an improvement. You don't lose anything - you're actually gaining capabilities because TweenGroups are much more powerful and flexible. If you want your two TweenGroup.allTo() results in one group, it should be as simple as using the mergeGroup() method in TweenGroup. Seriously, once you get the hang of how TweenGroups work, you'll love the power it gives you.
  24. Yeah, in the AS2 version, I'd recommend setting allowDelete to false so that you can manage it for yourself. Then you can set up a listener for the "deleteKeyDown" event and in your handler check to see if the target is a TextField or not (or however you want to set up your logic).