Jump to content
Search Community

GreenSock last won the day on May 10

GreenSock had the most liked content!

GreenSock

Administrators
  • Posts

    23,172
  • Joined

  • Last visited

  • Days Won

    820

Everything posted by GreenSock

  1. Great question. There are two factors to consider: 1) You need a license for each developer who has access to the source code. If you're the only developer, a single-developer license will suffice. 2) There are no additional licensing fees if you're using it in a web site (or application or component, etc.) that is freely available to the public, meaning you don't charge end users a licensing fee or access fee for your site/application/component. It doesn't matter if you are paid to create the site/application/component itself. For example, if you're developing a site for Nike that allows users to upload and place images on t-shirts and Nike pays you to build the site but they don't charge end users any fees to use the product itself, then you don't have to worry about any other licensing fees for TransformManager. If, however, you're using it in a web site or application for which end users are charged a fee to use or access, you need to simply join Club GreenSock at the corporate level that corresponds to the number of developers who will have access to the source code. See http://blog.greensock.com/club/ for details. The "Unlimited" level even includes TransformManager and the rights to use it in commercial projects with virtually no restrictions. Does that answer your question?
  2. Sure. All TransformManagers are added dynamically
  3. Sure, you can transform any of them, but a single TransformManager instance can only manage items with the same parent. So you'd need to create a TransformManager instance for each of them. Keep in mind that if you want one selection to deselect other items, you'd need to call deslectAll() on the other TransformManager instances. You would NOT be able to allow the user to multi-select items that belong to different managers and move/scale/rotate them all together. That functionality requires that the items have the same parent.
  4. I bet it's a security sandbox violation. If you're going to load it from my site, you need to put this code in your Flex app: Security.allowDomain("www.greensock.com"); Otherwise your app won't allow TransformManager to access the stage.
  5. This is almost always caused by the fact that the image hasn't fully instantiated when you call the update() or addItem(). Even when Flash fires the onLoadInit, sometimes it STILL doesn't accurately report the width/height which is essential for TransformManager. I'd recommend using a setTimeout() or TweenLite.delayedCall() to wait at least a few milliseconds AFTER the onLoadInit is called to call update() or addItem(). Try using trace() at that time to see if your image's width/height are reporting accurately.
  6. TransformManager can transform any DisplayObject/MovieClip, so since components qualify as DisplayObjects/MovieClips, yes, they can be transformed. You can lock the aspect ratio by setting the constrainScale property to true.
  7. Silly me. Copy and paste strikes again. It's fixed in the latest build. Thanks for pointing that out.
  8. No, TransformMatrixProxy doesn't bend the corners in like that - it's impossible with straight transform.matrix transformations. In order to accomplish it, you need to do BitmapData manipulation or use a special filter. I did create something that does pretty much exactly what you're looking for, called Simple3D but I never released it to the public. You can see a demo here: http://www.greensock.com/ActionScript/DistortedView/. Both classes are fully tweenable for animated effects. They're available to "Shockingly Green" Club GreenSock members because they're technically still in Beta. (see
  9. In AS3, it's as simple as: myManager.deleteSelection();
  10. TransformMatrixProxy can skew things, yes. TransformManager is meant for interactive scaling/rotating/moving, so I assume you meant TransformMatrixProxy. See the interactive demo at http://blog.greensock.com/transformmatrixproxy/
  11. I just tried your test and it worked perfectly for me. Could you post an FLA that demonstrates the problem? There's really no code inside TweenLite that I can think of that could possibly cause behavior like that. It would just tween the _alpha value from 0 to 100. Do you maybe have some other conflicting tween where you set overwrite:false that's also trying to tween the _alpha of the same TextField at the same time? That could explain the behavior.
  12. Nope, sorry Dan, but there isn't something that fades to one value and then another automatically. You'll have to use 2 lines of code (the horror!)
  13. I don't follow your question. Are you asking how to fade out and then back in using TweenLite/TweenMax? Are you asking if TransformManager has a built-in function for fading out and fading in over time?
  14. It should be relatively straightforward as long as you realize that rotateSelection() accepts RADIAN values, not degrees If you want to translate degrees to radians, you'd just do: var radians:Number = degrees * (Math.PI / 180); So if you want it to rotate 5 degrees, have your + button call a function like: function onClickPlus($e:MouseEvent):void { myManager.rotateSelection(5 * (Math.PI / 180)); } And your - button could call something like: function onClickMinus($e:MouseEvent):void { myManager.rotateSelection(-5 * (Math.PI / 180)); }
  15. Sorry, but I have no idea what you're trying to accomplish so I can't help with the Math. Please explain.
  16. Sure you could do that, but again, you'd need to handle saving and applying that data - it's not something TransformManager does automatically for you. I've done that very same thing in an application before too. TransformManager worked great with it.
  17. Glad to hear you have been enjoying TweenMax. Here are the answers to your questions: ANSWER: I’m not sure exactly what you mean by “level switch”, but it does automatically bring your selection to the top of the display list of its parent. Please keep in mind that the items that a particular TransformManager instance manages must share the same parent (although you can create multiple TransformManager instances if you want – one for each parent). You can also move the selection up or down in the display list level-wise with the moveSelectionDepthDown() and moveSelectionDepthUp() methods. ANSWER: Sure, but that has nothing to do with TransformManager. You’d just need to save either the matrix values or the x/y/scaleX/scaleY/rotation values and then re-apply them before you add them to the TransformManager the next time. ANSWER: You get minor updates anytime I release them. No limit. If I release a major update with vastly different/better features, you’d need to pay an update fee, but I have no plans to completely rework the class because it’s really solid as it is and I can’t think of any ways to change it so much that it would warrant an upgrade fee. If I release a major update within the next year, you’d get it for free anyway, but again, I do not plan on creating a major update. Everybody who has purchased the class has been very happy with it (from what I’ve heard). Here are a few recent reviews: http://evolve.reintroducing.com/2008/10 ... xperience/ http://blog.kevinhoyt.org/2008/08/13/gr ... nager-as3/ Let me know if you have any other questions.
  18. Yep, I JUST added that last night actually. I'll be sending out a notification to Club GreenSock members shortly. Basically, the new create() method prevents you from creating more than one proxy per DisplayObject/MovieClip. Some people were spawning new proxies every time a button was rolled over or off, and they had conflicts with multiple proxies trying to control the color of a single DisplayObject/MovieClip. When you use the new create() method, it checks to see if there's already a proxy for that particular object. If so, it returns that proxy, and if not, it creates a new one and returns it. I also added a "target" property that allows you to get/set the target of the ColorTransformProxy. OLD WAY: var ctp:ColorTransformProxy = new ColorTransformProxy(my_mc); NEW WAY: var ctp:ColorTransformProxy = ColorTransformProxy.create(my_mc); I'll send you a link shortly...
  19. Which class are you talking about?
  20. Ah, as you can tell I'm not much of a Flex guy There are numerous bugs in the Flex framework. I have spoken directly to Adobe about this and they have confirmed it. When transform.matrix values are updated (which TransformManager does), the width, height, scaleX, and scaleY properties are NOT updated properly! VERY frustrating. I made not of that on the TransformManager blog page. Anyway, if you need to find out the accurate values, you should be able to use the gs.transform.utils.MatrixTools class that came with TransformManager in conjunction with getBounds() to figure it out, like this: var bounds:Rectangle = my_mc.getBounds(my_mc); //gets the unscaled dimensions of my_mc var trueWidth:Number = bounds.width * MatrixTools.getScaleX(my_mc.transform.matrix); var trueHeight:Number = bounds.height * MatrixTools.getScaleY(my_mc.transform.matrix); Does that work okay for you?
  21. Could you explain further? I don't understand your question. What's $width and $height?
  22. Sure, that should work. Or you could use a TweenGroup which could come in handy if you want to skip ahead or reverse or something... import fl.motion.easing.*; import flash.display.*; import gs.*; var line:Shape = new Shape(); line.graphics.lineStyle(10, 0xFFD700, 1, false, LineScaleMode.VERTICAL, CapsStyle.NONE, JointStyle.MITER, 10); this.addChild(line); line.x = 50; line.y = 50; var drawer:Sprite = new Sprite(); this.addChild(drawer); var sequence:TweenGroup = new TweenGroup([{target:drawer, time:0.1, x:200, ease:Quadratic.easeOut, onUpdate:drawLine}, {target:drawer, time:0.1, y:100, ease:Quadratic.easeOut, onUpdate:drawLine}, {target:drawer, time:0.1, x:0, ease:Quadratic.easeOut, onUpdate:drawLine}, {target:drawer, time:0.1, y:0, ease:Quadratic.easeOut, onUpdate:drawLine}], TweenLite, TweenGroup.ALIGN_SEQUENCE); function drawLine():void { line.graphics.lineTo(int(drawer.x), int(drawer.y)); } If you want your easing to apply to the whole group instead of each individual line, you could even set them up in a group each with an ease of Linear.easeNone and then tween the "progress" property of the group and use an ease in that tween. Lots of possibilities.
  23. Oh, I think I see the problem. Two things to keep in mind: 1) When you transform TextFields, TransformManager will change the size of the BOX, not the text. This is actually a feature. If you want the text to transform with the box/handles, just wrap your TextField in a Sprite/MovieClip. 2) You set your TextField to autoSize which explains why it won't allow TransformManager to go smaller than the text - Flash just resizes the TextField immediately to fit the contents. Does that help?
  24. So your TextField is being altered independently AFTER it was added to TransformManager? For example, maybe the size is 100, 100 when it gets added, but then later the user (or you through code) alter the size without going through TransformManager? You should either make all your transformations through TransoformManager OR just make sure you call update() on the TransformItem instance associated with your TextField between the time it was altered and the time it gets selected because TransformManager doesn't "watch" the object to see if you make any changes independently of TransformManager. If that doesn't help, could you post a super-simple FLA that demonstrates the problem? Please strip out all unnecessary code. I'm sure we can get it figured out
  25. It might just be a scope issue. Try this: import mx.utils.Delegate; Delete_btn.onPress = Delegate.create(this, onPressDelete); function onPressDelete():Void { manager_obj.selectedItem.deleteItem(); }
×
×
  • Create New...