Open danzen opened 6 years ago
This is an example of about 3 months of updates and issue solves - just in case you are here and did not go to the updates page:
ZIM 10.4.0 TEN PAGE https://zimjs.com/ten.html Updated TEN page to show links to various updates to ZIM TEN
LIST WITH CHECKBOX https://zimjs.com/ten/listcheckbox.html Added checkBox parameter to List to use checkboxes in list - thanks Dale789 for the prompting! Added checkBoxes property to List to give a read only array of checkBoxes Added a checkBox property to a list item like list.selected.checkBox to give access to an item checkBox Added the following three methods to manipulate checkBoxes: setCheck(index, type) - set the CheckBox at an index to true or false (the type parameter) setChecks(type) - set all CheckBoxes to true or false (the type parameter) returns object for chaining getCheck(index) - get the checked value of the CheckBox at an index Added tap parameter to CheckBox to activate on tap - good for List and Window when dragging Added toggle(type) to CheckBox and toggled property - same as setChecked and checked but consistent with others
PATH TRAVERSE https://zimjs.com/ten/traverse.html Added a traverse() method to Blob and Squiggle to animate an object between points of the path Added a "traversed" event that is dispatched when a traverse() ends To traverse backwards past start or forward past end of Blob use two traverse calls Thanks KV for the experimentation and requests. IMPROVEMENT Fixed up animate() along path so it properly resets internal pathRatio and tween with stopAnimate() called this is important when doing multiple animations along path. Set this to reset only with path or dynamic animation - watch out for color animation Color seems to work but may have issues with multiple color animations on same object
THREE - RETINA - IMPROVEMENT ZIM three_2.0.js has launched to work with retina The namespace is now optional and works like new Three(); See https://codepen.io/zimjs/pen/qGPVqO
PIZZAZZ 3 - RETINA - IMPROVEMENT Adjusted pizzazz_03 to work with retina https://zimjs.com/patterns.html Tidied up setMask() for retina - was not working if mask had same parent as object. This fixed the ProgressBar() in retina This is an odd localToLocal issue since retina - we will keep an eye on it.
ANIMATE REPLAY TWEEN - PATCH Added a clean parameter to animate() that can be set to false to not delete the tween when done This allows percentComplete to be adjusted and target.pauseAnimate(false) to play tween Note - percentComplete does not include waited once waited period has passed So to restart a tween that has a wait use replayTween - see below. Added target resetTween() and replayTween() resetTween() will reset the properties of the target to the original values before the last tween replayTween() will reset the properties and play the last tween Note - only replays the last tween of a series and probably does not work on sequence animation
GENERAL Fixed zta() so it does not break in IE11 - as there is no console.table()
PATCHES Patched animate() in series mode to make sure last animate object call is called - thanks Yalon for the find Patched animate() series to remove first animation in animate series when a wait is present this was causing subsequent series animations to not have the correct idSet id for stopping Made animate() override any paused properties so not unpausing Sprites to cause CreateJS Sprite animation Tested animation page and NIO dynamic animations BREAK - adjusted centerReg() and center() to center on the origin of a container that has no bounds set Made Label() text parameter accept ZIM PICK object Fixed Pane() close if no stage to update BREAK fixed width and height, widthOnly and heightOnly to be absolute value (positive) if scale is negative (strange we missed this for so long!) Fixed Tile() mirrorH and mirrorV and align, valign with scaled objects Fixed Frame() loadAssets queue version of "assetload" event - there was a typo in the event dispatch - working now... Added a controls property to transformControls that references the controls Added data parameter to Loader save() method - set to true to return Base64 string instead of file saving image - thanks Ami Hanya Adjusted Circle, Rectangle, Triangle, Squiggle and Blob to clone gradients (when using direct linearGradient() and radialGradient() methods) Fixed Keyboard < > x vertical spacing Fixed Keyboard cursor placement - was using globalToLocal on CreateJS Text field - which is broken in retina Fixed Label backing so that pattern gets saved under backing property and properly centered when label is centered Also removed stage scale setting in Pizzazz 3 that was incorrectly added to retina
Updated ZIM Docs, Code page, Distill, Bubbling Videos, Templates, GitHub, NPM, TypeScript Updated GitHub ReadMe intro page - please STAR us on GitHub if you can - thanks - we are trying to build awareness. Whew - thank goodness for Patreon! https://www.patreon.com/zimjs - never any pressure - using ZIM is the biggest reward!
ZIM 10.3.1 Added strokeObj parameter to ZIM Shapes Circle, Rectangle, Triangle, Blob, Squiggle which defaults to {caps:"butt", joints:"miter", miterLimit:10, ignoreScale:false} https://zimjs.com/explore/strokes.html Added radialGradient() and linearGradient() methods to Circle, Rectangle, Triangle, Blob These just call the colorCommand versions which are still there Note - must update about 100 Rectangle, Circle and Triangle occurences in ZIM otherwise get a recursive style error in group style Note - to apply gradients to the border use the borderColorCommand (we do this less often) IMPROVEMENT Fixed setMask on ZIM shapes to handle masking objects in non 0,0, scaled and rotated containers Note: getConcatenatedMatrix().decompose() must have scales divided by stage scale in retina setting Cloned label backing from STYLE so can set same backing on multiple labels - thanks Valeria Valoueva for the prompting Added still parameter to reg() to set x and y so object does not move when reg is set - thanks Vishwas Gagrani for suggestion Fixed up missing parameters at end of Blob and Squiggle clone IMPROVEMENT Removed extra space at end of List when removeAt() is used IMPROVEMENT Fixed up List accordion setting indent glitch since 10.0.1 - thanks Alicia Martin for the find We had added a backing rectangle for the list elements and this broke indenting after a second time (put a backing on a backing!) Added shiftHorizontal and shiftVertical to STYLE of Button - goes through to the label parameters...
Updated CDN, Distill, TypeScript, NPM, Templates, Code Page, Docs
ZIM 10.3.0 RETINA - IMPROVEMENT https://zimjs.com/retina.html Added a retina parameter (default true) to scale the stage with devicePixelRatio Scaling the stage rather than the canvas works very well for scaling vectors up This is the technique that Adobe Animate uses - see the next section for issues.
ADOBE ANIMATE - IMPROVEMENT https://zimjs.com/animate.html ZIM now provides a ZIM SHIM that lets ZIM work within Adobe Animate without ZIM Frame. This is a standard Animate Publishing template with a few lines of ZIM code added. ZIM was mostly supported in Animate but now, various issues below have been solved.
Adobe Animate scales the stage - which affects globalToLocal, localToGlobal, localToLocal. ZIM now overrides these with fixes and dozens of changes have been made as follows:
Basically localToGlobal needs its resulting point to be divided by the stage scaleX and scaleY. globalToLocal needs its input point multiplied by the stage scaleX and scaleY localToLocal needs to call these - but not the GlobalToLocal if the object is on the stage directly - sigh.
BREAK Mouse even object e.stageX, e.stageY, e.rawX, e.rawY need to be divided by the stage scaleX and scaleY.
stage.getObjectUnderPoint() needs to use the x and y multiplied by stage scale unless you are using e.stageX and e.stageY which would normally be divided by stage scale so the result is you can pass e.stageX and e.stageY directly in to getObjectUnderPoint without any changes
Adjusted scaleTo() to assume stage is scale of 1 with stage.width and stage.height matching what is set.
Shapes are still positioned as if on an unscaled stage for hitTests. So any x and y values need to be multiplied by the stage scale before doing a globalToLocal into the shape to counter the globalToLocal expecting a 1 scale stage.
getConcatenatedMatrix() needs to have resulting values divided by stage scale
OTHER ADOBE ISSUES
The CreateJS MovieClip does not have the ZIM fixes to globalToLocal, localToGlobal and localToLocal So create a ZIM Container with bounds of the MovieClip and add the MovieClip to the container. From then on, use the ZIM Container to drag, transform, hitTest, etc.
Adobe Animate is running an older version of CreateJS that does not automatically recalculate (previously specified) bounds when set to null. This causes Tab heights to miscalculate which effects List, etc. So adjusted Tabs to test for old CreateJS and not expect bound recalculation.
There seems to be a problem with hitArea (expand()) on cached objects so adjusted use one or the other
SQUIGGLE AND BLOB PATH - IMPROVEMENT https://zimjs.com/hittestpath.html More updates to path control to help out with Shape Tween which was launched in 10.2.0:
Added addPoint(), addPoints() and interpolate() methods to squiggle and blob To add a point at a percentage, or add a number of points between points Or get the data for any number of points - used by hitTestPoint interpolate could be used to set dynamic bounds on Blob and Squiggle which would lead to setting a drag Boundary - like the general drag() has. So look for this in future versions of ZIM.
We could shape tween between shapes with a different number of points but for now, use the addPoint() manually so the number of points are equal. This will usually result in better shape tweens than trying to guess where to automatically add a point. But we may look into how that might be done via an algorithm.
Added hitTestPoint(num) to do a hitTest of any object shape along a Squiggle or Blob path!
Adjusted the editPoints parameter so true adds points only to the edge. Followed this amazing interactive tutorial - thanks Gabi https://codepen.io/enxaneta/post/how-to-add-a-point-to-an-svg-path When we do, it adds the point and adjusts the points next to it - for no overall path adjustment. Thanks Sam Van Herck for the promptings. If you want the original adding points anywhere - use editPoints:"anywhere" At which point, it adds a point with controlType "none". Added two properties to adjust accuracy vs. speed of adding points: addPointFactor - (default 20) used when placing new points along edge (editPoints is true) divides the distance between points by this amount - the smaller the more accurate but also slower addMinDistance - (default 15) edge press needs to be within this distance to add a point to the edge
GENERAL Added offStage parameter to drag() - set to true to be able to drag the object off stage - thanks Shammi for the idea! Adjusted Stage and StageGL to accept a canvas tag as well as the traditional canvas tag ID. Added rgb and rgba support to ColorPicker - thanks Ami Hanya for the promptings The rgba alpha now adds a start alpha for startBackgroundColor - if rgba is used in a color list the alpha is ignored Added rectIntersect(a,b,margin) function to code module which returns true if rectangles intersect Added boundsAroundPoints(points) function to code module to get a rectangle around an array of points These are used by Blob and Squiggle and hitTestPath Fixed Blob "circle", "rectangle", "triangle" points parameter values to use radius setting as well. Fixed "rectangle" to be centerReg() for Blob IMPROVEMENT Fixed slight spacing issue with hitTestGrid() IMPROVEMENT Undecided how to treat setting bounds width or height to 0 it means that width and height can't be set as they adjust the scale and we divide by 0 So adjusted Tabs to overwrite the width if width is 0 Added blur event to Window to stop drag if browser window loses focus - thanks Ami Hanya To turn this on, set the List or Window cancelCurrentDrag parameter to true Seems that maybe mobile was not handling transform controls properly due to getObjectUnderPoint test IMPROVEMENT So removed this requirement for mobile - means objects overlayed on transforms may trigger transforms on This was a rare issue and more of a perfectionist fix... The getObjectUnderPoint is working in a simple case on mobile but not in the complexities of transform(). Adjusted drag() slidestop event to not trigger if object is just clicked on and has not been moved - thanks Frank Los for the report.
PATCHES - added support for receiving SVG path format in the ZIM Squiggle and Blob points parameter Adjusted animate() drag for path with Squiggle and Blob according to the technique found here https://codepen.io/eliCrow/pen/MLdddR See the ZIM version: https://codepen.io/zimjs/pen/GLLvoP automatically set ease to "linear" when dragging on Blob or Squiggle - it is the only ease setting that works fixed TextArea, Tag and Loader to scale and place properly with retina - CreateJS DOMElement was scaling the tags when the stage scaled Tried to fix the outline property of Label - since it is a CreateJS object, the localToGlobal is off - may have to recode for exotic label settings Fixed Label outline parameter to work with labelWidth and labelHeight set - thanks Ami Hanya for pointing it out Patched Timer in a few places for game_2.0 with respect to ending time Updated SVGContainer to set splitTypes default false like the docs say Made Waiter dispose() remove waiter from stage - thanks Ami Hanya Fixed up Distill to work with centering with STYLE - zob() in distill needs to be kept up-to-date (was missing something we added for STYLE and ZIMON) Fixed Pick class to properly work with Distill - needed to record static methods being used Changed obj.setBounds() to obj._bounds = null; to support pre version 1 CreateJS code (like current Animate export)
Updated CDN, GitHub, Distill, Code page, Templates, TypeScript, NPM, Bubbling vids, Site, Tips, Social Media, Blog, Promo Ads.
ZIM 10.2.0 ZIMON See https://zimjs.com/zimon/ Similar to JSON, ZIMON stands for ZIM Object Notation It turns any object to a string using ZIMON.stringify(object) It turns a ZIMON string back into and object using ZIMON.parse(string) The object can be on its own or inside an array [] or an object literal {} These can be nested and filled with any type of object (that is prepared) ZIMONON (default false) must be set to true to properly ZIMON.stringify() this prevents the slight memory cost if not using ZIMON (95% of the time)
KEY
An optional key object can be used to specify the scope of the class
and to specify which properties to store for objects made from a class.
The scope must be a string accessible from where you stringify - it can contain dots (.)
The key can be passed as the second parameter to ZIMON.stringify().
The key is sent in the ZIMON string and nothing extra is needed when parsing.
PURPOSE
The purpose is similar to JSON - to save to localStorage or databases or share between languages.
Indeed, the final ZIMOM format is JSON.
Like JSON, ZIMON can be used outside of ZIM and outside JavaScript if implemented in another language.
See https://github.com/danzen/zimon/ for generic JS code to port to other languages.
** PREPARED OBJECTS
Any objects NOT supported by JSON must be prepared
so objects other than string, number, array, object literal, boolean or null
need to have the following:
1. A type property that matches the class name as a string
2. An arguments property that holds an array of the arguments passed to make the object
The ZIM Objects are already prepared - so no extra work is required
See ZIMON in use here in an updated version of https://zimjs.com/iso/ ZIMON - adjusted zob() to record arguments of any class when ZIMONON is true
SHAPE TWEEN IMPROVEMENT See: https://zimjs.com/animation/shapetween.html ZIM now supports built in animation from one Squiggle to another or one Blob to another This is built in to animate() as a convenience property called shape: squiggle.animate({shape:secondSquiggle}, 1000); There is also a blobShift convenience property that cycles the target points (positive or negative) blob.animate({shape:secondBlob, blobShift:2}, 1000); The Blobs or Squiggles need to have the same number of points
BLOB BASIC SHAPES IMPROVEMENT See: https://zimjs.com/animation/shapetween.html ZIM Blobs points parameter now accepts shape values of "circle", "rectangle", "triangle" or a custom ZIM Circle, Rectangle or Triangle object to match. This makes it easier to shape tween, path animating/dragging/labelling, etc. with basic shapes
GENERAL Added expand to STYLE functions Adjusted animate to properly represent the percentComplete property on the target. IMPROVEMENT This needed to be applied after animation starts to catch rewind percentage, etc. See https://zimjs.com/explore/squigglepart.html added a read-only adjusted property to Triangle as to what the adjust parameter was set at IMPROVEMENT added {passive:false} to zil() events to avoid another Chrome protective console warning (sigh) added a series type to series functions noted that header('Content-type: text/javascript'); needs to be added to PHP calling async again to avoid a new warning in Chrome console (sigh) Fixed internal id number in SVGContainer to work properly with Distill Fixed doc on LabelToPath so showPath is true to start Fixed Toggle("ON") example to Toggle({label:"ON"}) and took away selected property - use text property instead as read-only what text is selected BREAK IMPROVEMENT Dozens of circle component parts were adjusted to accommodate new percent parameter in Circle IMPROVEMENT Tidied up hov() mouseovers and cursor settings
Updated CDN, Templates, Distill, Code Page, TypeScript, NPM Bubbling videos, blog post and social media coming soom
ZIM 10.1.0 ZIM TEN SITE The ZIM TEN site is finished and has been well received. A few logos on secondary pages are still the last ZIM logo. We will get to those soon. There were a few overlaps on Mobile - if you see anything, let us know at https://zimjs.com/slack - thanks to Jade for catching the glitches!
GAME MODULE - VERSION 2 https://zimjs.com/iso/ Updated Game Module to 2.0 - and added the Game Module to bottom of Docs. You still need to import (script tag) the game_2.0.js file to use. Added Board(), Person(), Orb(), Tree(), Timer() and Scorer() classes. They let you make tile games in top or isometric view. A relatively comprehensive example is at https://zimjs.com/iso/ There is not much of a game there but it uses most of the parts. This is somewhat based on https://zimjs.com/carboon/ which has NOT been updated to the new Game module - but shows potential. IMPROVEMENT The Docs now include the GAME module at the bottom in purple. The Board class is quite well featured with over 20 parameters and more than 60 properties and methods. It is designed to optionally work with path finding such as EasyStar. The board supports info that can be bigger than the board. Then a camera can be moved with swiping or arrows. Pieces can be moved around the board with keys or with pathfinding. Advanced filters on data, color, icons, items and rows is available for finding random tiles, keying to certain tiles, removing certain items, etc. Game Module: PATCHED - LeaderBoard colors to match color being font and backgroundColor being shape. BREAK Added backdrop to LeaderBoard that closes LeaderBoard if clicked off LeaderBoard Added multiple domain support when signing up for LeaderBoard - just use commas between domains CodePen is running pens on different domains so can try: cdpn.io,s.codepen.io for domain.
STYLE FOR CONTROLS IMPROVEMENT STYLE has been added to Pages(), Layout(), Grid(), Guide(), Tile(), Pen(), Emitter(), Scroller(), and Dynamo() Here is our test page: https://zimjs.com/test/styles.html Also added loc functionality for STYLE in general STYLE = {loc:10} // will put everything at 10 - or target type or group, etc. STYLE = {loc:{x:10, y:10}} // will put everything at 10, 10
ZIM NPM Added ZIM and CreateJS to NPM - Node Package Manager Use with Browserify to make Browser ready See https://zimjs.com/npm.html
ZIM MVC Added a template for ZIM Model View Controller See https://zimjs.com/mvc.html
GENERAL Added duplicate() chainable method to clone() and copy any custom properties - thanks Ami Hanya for the suggestion Fixed SVGContainer and Circle to show up properly when viewing the code from the Docs. Added isometric swiping to Swipe as fourth parameter to work with Game Module Board({isometric:true}) Made hov() automatically set cur() and set cur("default") when hov(-1) IMPROVEMENT Fixed pages jumping to left when going back to landscape on apple ipad - thanks Frank Los for prompting Fixed physics when dispose() and go to make a new Physics() Fixed Physics noDrag() when already dragging - thanks Ami Hanya for the prompting Added index property to Pages - that gives the index of the current page in pages fixed contact() to work on new physics when previous physics is disposed will still need to reset contact() on new physics BREAK - for Toggle(), removed toggle.selected and changed toggle.text to show selected text or "on", "off" if no Label IMPROVEMENT Fixed cloning of Tile - was removing first object as we tried to let objects with ZIK clone with ZIK Solution was to clone objects having a clone but not cloning ZIK objects. Added loc to Distill custom select functions - caused it to be missing in customize feature for docs
This has been a large undertaking over the last month... well and five years. Your support on Patreon at https://patreon.com/zimjs is always appreciated. We were dinged for a $200 bill from Amazon with 5 Million views a day. So we are thinking of moving the CDN to CloudFlare - we would keep the Amazon as well for legacy. Also, if you have not left a review on FaceBook https://facebook.com/zimjs/ Or let us know on Slack at https://zimjs.com/slack and we will post on the About page at https://zimjs.com/about
ZIM 10.0.1 PROTOTYPE CONTROL STYLES Prototyping adding controls to STYLE - the first test is with Tile. Added a delayPick style to let Tile choose the value rather than STYLE on the object For instance, passing [red, green, blue] to a Circle would pick the color randomly but adding a Circle to a tile gets only one styled circle - so the whole tile would be that random colored circle Adding delayPick:true to the circle style will let the Control using the object make the selection This will be handy for Emitter, Pen, etc.
Added a percent parameter to ZIM Circle that makes a Circle have a percent arc. So new Circle({percent:50}) is a semi-circle with bounds of the semi-circle The registration point stays the center of the circle https://zimjs.com/explore/circleArcs.html
Added spin() method to Physics objects this is a one-time turning force like an impulse is a one-time linear force To apply a constant turning force, use torque() in a Ticker or keydown event, etc. https://zimjs.com/explore/spin.html Fixed Physics to work with scroll and follow using drag() - already was working with controls but not drag.
Added pointsAdjusted property to Squiggle and Blob to change rotated or scaled points to non-rotated and non-scaled IMPROVEMENT Added normalize parameter to Squiggle and Blob update() method to update to normalized points must do this after rotating or scaling a point and then expecting manual updates on points otherwise if just animating rotation or scale of points do not need to set normalize true (just leave parameter out) Fixed bounds of cloned scaled Bitmap - was cloning width and height rather than bounds.width and bounds.height - thanks Ami Hanya Made Blob showControls param and method work when interactive false IMPROVEMENT Fixed adding points to blob when showControls is false - it remakes blob and was using showControls parameter value rather than _controls dynamic value Added faint background to custom Tabs and List elements so selected index works for whole tab area not just directly on the custom item - thanks Racheli Golan https://zimjs.com/test/listAlign.html Made Tabs and List align and valign work properly with objects that are not top left registration point - and handles align of scaled custom objects - thanks Ami Hanya Fixed transformControls.update() to work after pos() - pos was using CreateJS getTransformedBounds() and that was setting some sort of matrix that mixed up transform Fixed transformControls.update() to add controls on top of object - was going one back since 9.5 update... Fixed pressup on controls to remove custom cursors - lost a stage.update() somewhen. Adjusted Guide to show pixels on start when percent parameter is true Fixed Sprite loopCount and call to work properly - animate() was reading paused property of Sprite as true and not paying attention to loop count Adjusted Accessibility html tags in behind to be rgba(0,0,0,.01) in color to remain hidden when in tag scaling mode Fixed Tile to work with negative scale objects this lets Tiles have rows reversed or be fully reversed as follows: https://zimjs.com/explore/tileflip.html
PATCHED - added setting scrollX and scrollY to 0 for fit, full, outside modes This seems to solve the issue on iPad when changing orientation - it was left scrolled! Despite never scrolling - sigh.
Updated TypeScript, Templates, Code Page, CDN, Docs and Updates ;-)
ZIM TEN 10 - adds 29k ZIM 10 offers a more integrated Physics and a formalized Pick() class for ZIM VEE dynamic parameters. A new SVGContainer class lets you convert SVG to ZIM Blob, Squiggle, Rectangle and Circle objects - thanks KV for the help! There is a new site ;-) with TEN sections that highlight types of things that can be made with ZIM. Specific video entries for each doc element are under way.
PHYSICS - IMPROVEMENT See: https://zimjs.com/physics/ Integrated Physics into ZIM DisplayObjects and the Docs. Still need to import Box2D and the ZIM physics module - updated to version 2. Making a physics object and mapping a ZIM object is no longer needed. var circle = new Circle().center().addPhysics(); will create a default world and drop a circle in it! Access the physics object with circle.physics Or premake the world with new Physics() - to customize gravity, borders, scroll, etc. The addPhysics() lets you set a bunch of parameters about the body. Access the physics body with circle.body
DisplayObject Methods: A set of methods are added to the DisplayObject when physics is in place: impulse(), force() and torque() methods to push objects around and spin them. impulse() is a one time push like shooting a pool ball force() is a force over time like gravity or wind and is applied in a Ticker, etc. torque() will rotate or spin the object around its center The control() method will let keyboard keys move the object. The follow() method will let the stage follow the object when the Physics scroll parameter is set to true Contact can be tested for with contact() and contactEnd() each receives a callback function that is provided with the other contacting object and body
Physics Methods: The physics class has a join() method that can join objects in a variety of physics joints. The physics class has a drag() method to specify which objects are draggable. There is a debug() method to see the physics world behind ZIM. The world can be set up to be bigger than the frame and scroll to follow an object.
PICK Added a Pick() class to featured code module This takes the place of zik() when processing ZIM VEE values. ZIM VEE is so handy that a more generic class was created to share with the world of coding Pick() accepts parameters for a series, an array for randomly picked, a range object for a range or a function that returns a value The Pick object has a choose() method that is used internally - but can be used by coders in general. There is also a chainable num() method that lets you set the number of choices The Pick object also has a loop() method so you can loop through the options getting the next picked option each time. If you have an array and want a series you can use JS6 Spread ... or use new Options(series([your array])); ZIM Pick is a stand-alone class that can be copied and used in other languages for delayed parameters.
SVG CONTAINER Added SVGContainer class - that turns SVG into ZIM Squiggles or Blob paths Thank you to KV from our Slack team https://zimjs.com/slack for the help on this! The tech is still in experimental stage but will translate most SVG - no CSS on SVG... The paths can then be used to animate along, drag along, make a LabelOnPath, etc. Also consider svgToBitmap() if you are just wanting to view an SVG file in ZIM
HIERARCHY Added a zim Hierarchy() class to accommodate nested data. This is used by the accordion but could be used in making a "Mind Map" or a Tree interface, etc. The Hierarchy class comes with handy methods to traverse a hierarchy. This is similar to DOM processing but uses Object literals and as such, can store any Object
LIST ACCORDION See: https://zimjs.com/ten/accordion.html Added an accordion parameter to List to handle expanding and collapsing sections to a List. Uses ZIM Hierarchy for creating and tracking the nesting.
TIP Added a Tip() class under components just after Toggle. Tip() is a Label that has show() and hide() added to it Tip will hide automatically 2000 ms after showing - or whatever you pass in as a time. Tip also has align, valign and margin, marginH, marginV to easily position based on a target There is also an outside parameter you can set to position outside a target Tip is added to the stage - initially it was added to the target but the target might be rotated, etc. Thanks Ami Hanya for the requestion for Toast ;-)
GENERAL Added enabled property to List Added selectedRollBackgroundColor and selectedRollColor to Tabs, List, Pad - sigh BREAK. These default to rollBackgroundColor and rollColor Added dampKeyup to MotionController and dampKeyup property to control the damping on the Accelerator when keyup is used in MotionController. See: https://zimjs.com/explore/sidescroller.html Added expand to Window overlay rather than black with alpha .01 Made loop() work on an HTMLCollection (it already works on a NodeList) Added q, r, s, t points to ZIM Point - used with SVG - Cubic Beziers and Arc Added addChar(char) and removeChar() to Keyboard() Added x and y to rot() to rotate around any point (relative to the container) Added event object to hotSpot click - also added callOver and callOut parameters Added "myCanvasAlternative" system to show alternative content if no canvas or to screen readers and possibly search engine indexing Added hotSpots property to HotSpots which is an array of HotSpot objects Fixed sink to work with new Emitter system (particles container independent of emitter position) Adjusted Tile so it does not clone first item but rather uses item passed in to Tile. setting slider enable false does not remove cursor to start setting animate of color:[blue, green, red] does not work
*** patches Adjusted cloning - to initially only copy matrix if shape or not a ZIM object but realized that that lost cloning of x, y, scale and skew so backed out of that change. Added buttonDown property to Tabs and itemDown property to List to get currently pressed item. Added getItemIndex(item) method to List Added clamp parameters to Proportion, ProportionDamp and Parallax defaults to true Set this to false to get values outside min and max range - thanks Ami Hanya for the prompting Adjusted scrollTop on Frame to default to false - this was for older iPhones - live version 5 - and does nothing otherwise It was reported that it might mess up mobile when tag mode is scrolled to the bottom - so we have defaulted it to false. Fixed stopAnimate() so it works with drag:true setting Fixed Blob controlLength parameter - was not using parameter value - now it is! Made Squiggle and Blob move parameter only stop overall dragging when set to false - that is what was intended Passed a CreateJS tick object to any function added to Ticker with add() this gives delta, time, timeStamp, etc. - thanks Alfred Yim for the prompting! Ticker.raw() functions receive a DOMHighResTimeStamp Fixed Tile to properly not clone if clone:false is set - thanks Racheli Golan for the find. This was introduced initially in 10 for ZIM Shapes accepting ZIM VEE for size and color - we mixed up a conditional and it is now patched. Adjusted Blob to properly close path so there is no gap on thick borders Controls were hiding behind transform objects since updates in 9.5 This has been fixed but should be monitored further. NOTE - as of 2/26/2019 SVGContainer has been updated - thanks KV for all the testing and updates on that. Here is a mess of an example: https://zimjs.com/explore/svgcontainer2.html Note - currently it does not do arcs nor does it use styles. Note - there are a few differences we are still working on so expect another patch. Diffences have been patched as of 3/1/2019 Also added label property to end of Sprite parameters This will stop the sprite on the label for texture packer approach See https://zimjs.com/explore/fruit.html SVGContainer() and svgToBitmap() now handle remote SVG, SVG tag and SVG string as input
TypeScript, Templates, Distill, Bubbling, Code page, have all been updated.
The pace of issue solves and updates has been similar to the sample above for 4 or 5 years straight now. ZIM is incredibly active. Come on in the SLACK where we handle all support and sharing https://zimjs.com/slack and please leave us a GitHub star if you are so inclined. We have neglected GitHub socially in the past... and now are needing more stars to get into CDNjs, etc. Thanks!!
These are formatted at https://zimjs.com/updates.html - so please visit the site for the latest updates solving thousands of issues over the last six years. Issues are usually solved within a day.
I guess this explains why I can't find many resources, discussion, or information about ZIM. It's all lost to slack, and not available for search engine indexing. 🤔
It's pretty highly NOT recommended to deal with issues in information black holes such as Slack. This means that users can't actually find information about your engine via Googling. And that information is perpetually lost in a private portion of the internet. This does not do you or the community any favors, and significantly restricts troubleshooting & research.
There are lots of ways to have issue boards that result in critical information not being lost on a regular basis. GitHub issues, GitHub discussions, Discourse (forum specifically made for this task), a classic forum ...etc
For devs, access to self-help information & troubleshooting on platforms they already use is paramount, eliminating that makes onboarding harder, and can quickly drive potential users away. It hurts engagement, lowers search engine priority, and overall makes ZIM more obscure.
I don't say this just to be critical, but to help, bringing your information to devs in the platform they use instead of having devs hunt to find it from you in a private space is an important concept for engagement & recognition. You have an awesome project here, seriously impressive and worthy of greater recognition, and the lack of available information online (Aside from your docs) really doesn't do you or ZIM any favors, if anything it's actively doing you & users a disfavor.
We are looking into it, @douglasg14b - thanks for the advice.
@douglasg14b - we have just launched a new forum at https://forum.zimjs.com on our servers powered by Discourse. Cheers.
We tend to deal with issues through our Slack channels at http://zimjs.com/slack. You are welcome to join! If you use ZIM, then you should join. The updates on these issues can be found here http://zimjs.com/updates.html. You can see that there is very active progress at all times - these correspond to the updates in the code here. You are still welcome to submit an issue here if you like.