|
What's New in 6.0 LiveCode Community Edition First and foremost this is the first release of LiveCode Community, the free Open Source edition of LiveCode! You can now download the full version of LiveCode and work in it for free, creating apps and utilities, and only ever buy a license if you need to build a closed source app. This is a big deal for Educators, Students, Hobbyists, and anyone starting out to build an app. Get it started, get it right, and only when you are ready to start shipping a professional closed source app, get your license. Faster apps We've really gone to town on optimising image performance in this release. Why? Because better image performance means faster apps, especially on mobile. If you have a lot of images in your app, you need them to load fast for the perfect user experience. We've worked on optimising images themselves and on image caching so you experience smooth fast app performance. The engine now has an image cache which is used to cache all decompressed image data. The size of the cache can be set using the global 'imageCacheLimit' property, and the amount of data in the cache is returned by the global 'imageCacheUsage' property. The image cache operates in a least-recently-used manner - if an image needs to be decompressed and there is not enough room, the images that were used longest ago are discarded from cache until there is enough room. If an image has 'alwaysBuffer' set to true, then it will be decompressed into the cache on card open. Images are processed from lowest layer to highest, so if too many images have alwaysBuffer on a card, images on lower layers will have their data discarded from the cache before ones higher up. An image can be forced to be cached by using the new form of prepare: prepare image <name> [ of ... ] The image cache is keyed on absolute filename of image thus it is now highly efficient to use image objects referencing the same filename, rather than buttons referencing icons. In particular, there will only ever be one decompressed set of image data for a given (absolute) filename in the cache at any one time. Better Workflow We've added autocomplete to the message box. Now when you type in a command into LiveCode's "command line" it will start making suggestions for you to really speed up your workflow and cut down on typing errors. Also, if you use "put" statements a lot, you'll love the new "Source" feature we've added, allowing you to go straight to the statement that generated the output. Auto-complete This feature allows you quick access to previous lines of code executed in the message box. Start typing to start the auto-complete feature. Type - Starts auto-complete Source The put command in LiveCode outputs content to the message box. The source button loads the script editor and selects the line of code that output the content. Click - Opens script editor More Productivity The new project browser is a big step forward in productivity. You can now quickly find all the elements in your project, and apply common actions to them directly. No more issues with locating invisible buttons, or objects hiding behind backgrounds. Quickly name or rename objects, use the search filter to find items, and generally work with your project efficiently and transparently. click image to zoom Script of Object Click - Opens the script in the script editor Behavior Script of Object Click - Opens the behavior script of the object Selected Object Click - Deselects currently selected object(s) and selects the target object Action Bar New - Create a new object of the same type as the highlighted object Group - Group the object(s) Name Double Click - Makes the name editable Lock from Selection Click - Toggles the setting Show / Hide Click - Toggles the setting Expand / Collapse Click - Toggles the setting Filtering There are a number of way you can do this: Just typing the the filter field will filter the controls by name. Alternatively you can specify what you want to filter by, one of name, type, script lines. Name and type use "contains" to match the filter string. name: <filter string> e.g. name: back type: <filter string> will filter by type e.g. type: button script [<|>|=] <integer> e.g. script > 1 The matching controls are shown, along with the groups, cards, and stacks they belong to. Settings Take a tour of the Project Browser here. Better Behaved Behaviors We've introduced "Before" and "After" handlers for behaviors. Why should you care? In a nutshell, it prevents user actions from interfering with your carefully crafted behaviors, causing them to act in unexpected ways when the message they were expecting never arrived. Here's how it works: Two new handler types have been added, before and after. Before and after handlers are exclusive to behavior scripts and are sent to the behavior script before and after all messages. For example, consider a mouseDown message moving through the message path. It gets to an object with a behavior script:
Before and after handlers allow developers to produce behavior scripts which can handle messages sent to a control without having any effect on the message path (unlike front and back scripts). Layers that Relayer We've introduced a "Relayer" command, which means that projects with many layered objects are much more manageable. If you discover halfway through a project that item A should really be underneath item B, but on top of item J which is located in another group of objects, you can now move it around readily and without unexpected consequences. Here's how it works: relayer control ( before | after ) layer index All forms work in a regular way - a control is moved relative to a target in one of four ways:
The target is resolved in one of three ways:
Before and after handlers allow developers to produce behavior scripts which can handle messages sent to a control without having any effect on the message path (unlike front and back scripts).
The control parameter determines the control that is to be moved.
Other new features include:
On iOS, support for 6.1 device and simulator builds was added. 105 bugs were fixed in total. Read the full release notes here.
|
Tweet
|