Today Creative
hello@todaycreative.co.uk
Studio: +44 (0)20 7738 7380

Categories

Posted by admin on 28th November 2008 in General

See a high quality (115mb) version here. Directed by Nick Hooker
0 Comments
Please fill in Name, Mail and Comment text.
Posted by admin on 28th November 2008 in General

batman logo

Comic Batman reaches the end of road after 69 years. Read all about it…

0 Comments
Please fill in Name, Mail and Comment text.
Posted by admin on 28th November 2008 in Web Development

Adobe just released a Beta of their new Labs project called Durango. Durango is a Framework to build AIR applications that can provide reusable components. Adobes goal with Durango is a “new way to share code and drive viral adoption of new components and services”. Durango addresses end users without the need to have any programming knowledge as well as developers to mashup applications by simply dragging components from one Durango application to another at runtime. These components can be visual UI elements or pure data services. Once a Durango application gets a component dropped in, the framework tries to automatically hook it in into its own application logic. Components simply accept inputs and produce an output. Durango components can share their information via conventional Flex Data Binding.
Properties on Durango components that may be connected are marked using the known metadata tags.
[as]
[AutoConnect(sink,source)] //can connect as both as inputand output
public override function set htmlText (val : String):void {
super.htmlText = val;
}
public override function get htmlText () : String {
return super.htmlText;
}
[/as]

Properties may be tagged as data sources, destinations, or both. When new components are added to an application, Durango makes as many connections to it as possible from among the available unbound component properties already in the application. Connections are made whenever values can be converted to the available type, or can be constrained to match property names.

Durango gives also the possibility to manually inspect and alter the way it`s components actually hook in by disabling or reassigning them or modifying descriptors as in the case of web service reuse / publish.Durango also announces a rapid application development approach by mashing up protoypes that can be incorporated into Flex Builder projects.

Follow this link for further information.

0 Comments
Please fill in Name, Mail and Comment text.
Posted by Tim on 25th November 2008 in Branding, Design, General, Typography

Well it is sort of letting someone else do the work for you, in terms of our blog. But ill have to let myself of after reading this article by Paul Shaw, on the AIGA website. It is a very interesting and informative essay on the formation of the New York subway system signage, and links in well with an earlier post of out on the New York Subway Map

Read it here

aiga_shaw_helvetica_1_1.jpg

0 Comments
Please fill in Name, Mail and Comment text.
Posted by admin on 21st November 2008 in Web Development

Sometimes i remember back, how easy it was in AS2 days to cope with visual objects´ depths or z-indexes, looping lists with applying the iterator to the depth of an object during instanciation by just providing a depth argument in attachMovie( “linkageId”, “newName”, depth ) or swapthDepths( depth ) for already existing Objects on the stage. Depth could be arbitrarily chosen. MovieClip.getNextHighestDepth() came in handy to put an object on top of all other object within one parent object. So MovieClips could literally be “parked” anywhere in AS2. It was convenient, nice, but somewhat anarchic. In AS3 we are now faced to much more constraint. The depth of a visual object, an instance of the so called DisplayObject or one of its SubTypes is bound to the term of the “Display List” where no “free” element positions can occur in the list, each new element coming to the list is added on top of the last one , fitting the next free position. ( assuming a incremental addChild(), not addChildAt() ) Once a list branch below a node is populated with display object items, the depths can be swapped or set for the already existent objects and only within a range from 0 ( the first possible depth position, an object occupies when being added to the list ) and the amount of objects underneath that same parent node minus 1. Sometimes that can result in kind of a hazzle when you have to reorganize the depth sorting of your objects when already in the displaylist, especially if you had added them without keeping track of during creation ( use of bare incremental addChild() )

When working with displayobjects consideing depth in AS3 the following methods are useful / neccessary :

[as]
parent.getChildIndex( chlild ) // returns the depth index of child within parent

parent.getChildAt( depth ) // returns the child object on depth position [depth] within parent

parent.addChildAt( child, depth ) // adds a child to the depth position [depth]
[/as]

this is possibly the method with the most confusing results ( runtime errors ) since depth can only be a range between 0 and the amount of existing sibbling object in the list minus 1

[as]
parent.swapChildrenAt( depth1, depth2 ) // swaps the object sitting on depth1 to depth2, the object sitting on depth2 is placed on depth1. For both arguments depth1 and depth2
[/as]

the same constraint as stated for parent.addChildAt( child, depth ) – they have to be in the range from 0 to numChidren – 1

and this property
[as]
parent.numChildren // gives the amount of children currently in the display list of parent
[/as]

So what if we could sort all child objects within a parent to predefined target depths ? It would be useful, when different application parts write or create object in one display list branch and we dont want to care for the addChild() order on that branch. We shoukd keep in mind, that we only can target depths not exceeding the current object amount, so we have at least to know about the resulting object structure beforehand
or we ont care and filter through a try catch block Anyway, we had a way not to care about the order of object creations within a parent node, if we knew the demanded final depths / the object structure, if we could address beforehand that demand before creation to have all objects restructed to that demand.

[as]
package de.fascina.display
{
import flash.geom.Rectangle;
import flash.display.DisplayObject;
import flash.display.DisplayObjectContainer;

/**
* @author Henry Schmieder
* @version 0.2 20.11.2008
*
*/
public class DisplayUtils
{
public static function sortChildren( d: DisplayObjectContainer, sortPropertyName: String ): void
{
var children:Array = [];
var a: *;
var b: *;
var o: int;
var i: int;
var curChild:*;

for ( i = d.numChildren; i > 0 ; i– )
{
try {
curChild = d.getChildAt( i );
}catch( e:Error )
{
}
if( Object( curChild ).hasOwnProperty( sortPropertyName ) ) {
children.push( new ChildVO( curChild, i ) );
}
}

var max: int = children.length – 1;

for ( i = max; i > 0 ; i–)
{
var bFlipped: Boolean = false;

for ( o = 0; o < i ; o++)
{
a = d.getChildAt( ChildVO( children[ o ] ).index )[ sortPropertyName ];
b = d.getChildAt(ChildVO( children[ o + 1 ] ).index )[ sortPropertyName ];
}

if ( a > b ) {
d.swapChildrenAt( o, o + 1 );
bFlipped = true;
}
}
if ( !bFlipped ) return;

}

}
}

class ChildVO
{
public var index:int;
public var reference:*;

public function ChildVO( reference:*, index:int )
{
this.reference = reference;
this.index = index;
}
}
[/as]

We can introduce a property “depth” for a DisplayObject sub type, a kind of meta property representing the wish to target that depth
That is easy. We just have to write a sub class of a DisplayObject, lets say MovieClip.

[as]
package de.fascina.display
{
import flash.display.MovieClip;

/**
* @author Henry Schmieder
*/
public class PyrMovieClipSortable extends MovieClip
{
public var depth:int;

public function PyrMovieClipSortable( depth:int )
{
this.depth = depth;
}
}
}
[/as]

And to use it this way…
[as]
var mc0: PyrMovieClipSortable = new PyrMovieClipSortable( 0 );
var mc1: PyrMovieClipSortable = new PyrMovieClipSortable( 1 );
var mc2: PyrMovieClipSortable = new PyrMovieClipSortable( 2) ;
var mc3: PyrMovieClipSortable = new PyrMovieClipSortable( 3) ;

var parent:Sprite = new Sprite();

parent.addChild( mc2 );
parent.addChild( mc0 );
parent.addChild( mc3 );
parent.addChild( mc1 );

DisplayUtils.sortChildren( parent, “depth” );
[/as]

The objects are now sorted after their depth property.
we could also use the name-property which every DisplayObject is provided with.

[as]
var s0: Sprite = new Sprite();
var s1: Sprite= new Sprite();
var s2: Sprite = new Sprite();
var s3: Sprite = new Sprite();

s0.name = “s000″;
s1.name = “s001″;
s2.name = “s002″;
s3.name = “s003″;

parent.addChild( s2 );
parent.addChild( s0 );
parent.addChild( s3 );
parent.addChild( s1 );

DisplayUtils.sortChildren( parent, “name” );
[/as]

When it comes to working with structures of Display Objects and depths there is another tool that may come handy.
This class, merely an object parser, but with the feature to also trace a nested structure of objects in the display list and showing their depths. Via a public static member SHOW_SHAPES = false we can exclude Shape Objects from being shown since they mostly habe no relevance to the program logic and therefor dont need to be traced.

4 Comments
Please fill in Name, Mail and Comment text.
Posted by David on 21st November 2008 in General

unknown.gif

I was searching through my email this morning and came across this! Old, poor humour, but it made me laugh!!

Thought I’d share it!

0 Comments
Please fill in Name, Mail and Comment text.
Posted by David on 20th November 2008 in General

c-2.jpg

There are millions of amazing archive images available from the collaboration between Google and LIFE magazine.

Heavyweight boxer Cassius Clay, aka Muhammad Ali, standing over opponent Sonny Liston as referee Jersey Joe Walcott steps in. (Date taken May 25, 1965. Photographer: George Silk)

0 Comments
Please fill in Name, Mail and Comment text.
Posted by David on 19th November 2008 in General

picture-1.JPG

Will it change you life… I doubt it! but you’ll discover a damn site more music with it… download it!

0 Comments
Please fill in Name, Mail and Comment text.
Posted by Tim on 18th November 2008 in General

An exhibition allowing artists to explore the idea of lasering away at seven layers of ply that make a deck and add their own distinctive mark.

A select group of artists globally have contributed their works to explore this new technology. Only 50 limited edition decks will be produced per artist. The aim of the show is to have a series of unique decks that collectors may choose to ride or display. But i feel riding may be out of the question at about £200 a board. Amazing objects, unfortunatly were a bit late on the uptake the main exhibition was in sydney in April. But the show should be coming to Europe soon enough.

Images by Genevieve Gauckler & Marok of Lowdon magazine fame.

laserboard_blog_01.jpg

laserboard_blog_02.jpg

laserboard_blog_03.jpg 

0 Comments
Please fill in Name, Mail and Comment text.
Posted by admin on 14th November 2008 in Design, Interesting, Print

picture-1.PNG

Back in the nineties I recall reading with interest an article in Mondo 2000 about the future of publishing and the reality of electronic paper. Well, 15 years later the reality of electronic paper is here. (Ok, the geeks out there know that Nicholas K. Sheridon from Xerox PARC was already onto it as far back as the early seventies)

As a celebration of their 75th birthday Esquire magazine have created the first electronic ink magazine cover. Ok, its not going to change the world just yet and you’d expect something a bit special in terms of graphics for such an event, but sadly they’ve let the side down on that department. It will be interesting to see if someone can ‘hack’ the unit and make it work for their own needs.

In terms of Mondo’s predictions, I’m still waiting for the union of human and machine article to become reality.

0 Comments
Please fill in Name, Mail and Comment text.