Commit Graph

32 Commits

Author SHA1 Message Date
Eric Rowell
8883e80bfe cleaned up _getContentPosition() method and fixed event detections for stages below the fold on mobile devices 2012-08-26 22:42:54 -07:00
Eric Rowell
6eda6d2607 decided to split Circle and Ellipse shapes because it was causing too many issues related to the mixed data type of radius, which could be a number or object with x and y properties 2012-08-25 23:56:39 -07:00
Eric Rowell
9093d9a512 refactored draw, _draw, and _drawChildren methods in such a way that isVisible and getListening logic resides in one place, therefore improving code quality 2012-08-19 20:44:45 -07:00
Eric Rowell
e19dae3402 rewrote intersects method, which now leverages the new getIntersection method. fixed up unit tests. also fixed bug with getIntersection method 2012-08-18 22:42:37 -07:00
Eric Rowell
f944409a1e new hit detection algo works with images that contain transparent pixels. Devs will need to use the createImageBuffer() method to create a higher precision buffer image 2012-08-18 22:02:16 -07:00
Eric Rowell
6a58830df3 draw methods now draw on both the front and back buffer by default, unless a canvas is passed as an argument. continued fixing up unit tests. Image width and height are now synced whenever the image object changes. 2012-08-15 23:13:50 -07:00
Eric Rowell
468f8ef2d3 checking in first phase of new hit detection algo, which enables high performance event detections even if there are hundreds of thousands of shapes. This is a giant improvement over the previous algo, and is a fairly big architectural change. Since the Animation architecture and API is also changing, I feel that these changes are big enough to warrant a new major version, v4.0.0 2012-08-11 16:22:01 -07:00
Eric Rowell
0f1a424840 prototyping back buffer hit detection algo 2012-08-10 22:33:22 -07:00
Eric Rowell
66ba99f9bc hooked drag and drop into animation engine 2012-08-09 00:01:21 -07:00
Eric Rowell
b6db65301c rewrote Animation API to improve flexibility. Animations are no longer tied to the stage. You can now instantiate as many individual animations as you like, and manage them however you like 2012-08-04 00:23:56 -07:00
Eric Rowell
75b20573cd removed plugins directory because Kinetic will be using a configurator in the near future 2012-07-31 20:36:36 -07:00
Eric Rowell
5b323bea40 merged with jfollas's TextPath updates, fixed remaining unit, manual, and performance tests, and fixed stroking logic 2012-07-28 09:55:21 -07:00
Eric Rowell
eccd8b7e64 silky smooth animations. got rid of layer and event throttling, and instead created dragThrottling. The dynamic animation frame rates already handles optimized animation drawing, we just needed to add manual throttling to drag and drop. Animations are now very smooth, and drag and drop is still smooth 2012-07-26 23:26:58 -07:00
Eric Rowell
ce3b98ee9c added some performance tweaks and polished up code here and there 2012-07-26 22:58:38 -07:00
Eric Rowell
d74ec8ab06 fixed new bug with stage toDataURL that was introduced with the new Canvas class, and added new filter unit tests 2012-07-21 13:29:22 -07:00
Eric Rowell
d8bbbf6353 new Canvas class to decouple layer and canvas, providing more flexibility. drawing operations now require a canvas object rather than an optional layer which contained a canvas. fixed some transformation issues introduced with a pull request that I pulled in last week 2012-07-18 23:28:45 -07:00
Eric Rowell
384a686740 worked through some synchronous / asynchronous issues with toDataURL and toImage(). stage toDataURL() is now asynchronous, and all other node toDataURLs is still synchronous. toImage() is now asynchronous. Kinetic.Image once again only accepts image objects, and can no longer be instantiated with a data URL or image data due to asynchronous issues. It's much cleaner for the developer to load an image however they like, and then instantiate a Kinetic.Image shape synchronously 2012-07-15 20:12:18 -07:00
Eric Rowell
4692c51c74 toDataURL() is now synchronous, and works with all nodes, including the stage, layers, groups, and shapes. This also sets things up nicely for node caching. You can now cache anything, including the whole stage, layers, groups, or shapes, manifested as Kinetic Images that were instantiated with data urls 2012-07-14 18:10:37 -07:00
Eric Rowell
d62df7ba5c setup filters. saveImageData can now work for any nodes, including shapes, groups, layers, and the stage. images can now take image data as a parameter. This enables shape caching. New beforeAttrChange event which fires before an attr is changed 2012-07-14 16:25:56 -07:00
Eric Rowell
d0f37f7c88 rewrote text array algo in Text. added newline support. now handling edge case in which the text box width is smaller than a character width. if a line is not able to wrap via space or dash, the word itself is wrapped. 2012-07-08 13:59:43 -07:00
Eric Rowell
9baaee2440 getIntersections no longer returns visible shapes in the result set, and can also be called from any container 2012-07-06 21:45:18 -07:00
Eric Rowell
014d4f198f fixed mouseover / mouseout incorrectly firing when moving from one node to another node inside the same container 2012-07-06 00:27:55 -07:00
Eric Rowell
31566bff13 transition attr updates now fire the attr change event. Fixed problem with root level attrs not being fired when child level attr changed 2012-07-01 00:19:56 -07:00
Eric Rowell
422791a99a cleaned up undefined, null, 0, and '' comparison operators. To unset a attribute, you can now set it to null, 0, or ''. Setting an attribute to undefined will have no effect 2012-06-22 13:15:29 -07:00
Eric Rowell
ac3f512ab8 updated global object utilities 2012-06-21 12:47:15 -07:00
Eric Rowell
5765ab749b converting arguments object into true array for setters, restored the original underscore.js methods, and moved radius conversion logic from the setAttrs method to a radiusChange event listener in Ellipse 2012-06-20 12:55:34 -07:00
Eric Rowell
667ee16aab added more functional tests 2012-06-18 23:52:25 -07:00
Eric Rowell
c8d8aa6028 changed draggable() to setDraggable(). added getDraggable(). added more unit tests and functional tests 2012-06-18 22:02:13 -07:00
Eric Rowell
bf616d0d4d fixed mousemove event bug, and added a very rigorous functional test to test all of the basic shape events for both desktop and mobile 2012-06-18 17:56:12 -07:00
Eric Rowell
fae1ff6cb7 removed Circle shape and replaced it with the more flexible Ellipse shape. If you define the radius with a number, the shape will be a circle. if you define the radius with an x and y component, it will be an oval 2012-06-17 16:50:04 -07:00
Eric Rowell
a49fc610d6 moved several manual tests to the unit test page. Added another functional test. Added warning logs to the functional test framework 2012-06-16 01:21:35 -07:00
Eric Rowell
9ec8c94701 refactored event bindings to expose content node events and enable true functional tests without a test framework like Selenium. Added new manualTests.html page for manual tests. One of the manual tests has already been converted to a functional test. Will add in image data url hashmaps soon so that I can compare screenshots before and after a series of actions in the functional tests 2012-06-15 11:47:55 -07:00