Monthly Archives: January 2012

The Signals blog is back!

The Signals blog is back, we'll be sharing tips, ideas, insights and thoughts on all things digital media very soon.

Updated Signals site

We've made a few improvements to our site in order to make our solutions clearer to see and to offer a rich insight into the great work that we do here at Signals. We hope you like the changes so far - many more updates coming soon.

SEPTEMBER 2011

Welcome to September on the Signals blog!

On the first day of each month we'll be sharing an image from the Signals Calendar. Formally only available to our nearest and dearest clients these images, the result of a collaboration between the Signals Ltd studio, the Signals creative team and Gonfalon (@gonfalondesign), will now feature here for your enjoyment each month. The Signals calendar is something of an institution and we hope you come to enjoy them as much as we do.

Those of you that know us might want to look closely because this year the Signals Calendar made stars of Signals staff, exploiting our skills and super powers to make sure the flash lights find us and get us where we belong: on the big screen.

SEPTEMBER

 

Signals Cycle!

This summer, encouraged by growing demand from several cycling commuters amongst us, Signals installed a bicycle shelter in the car park.


A grant from Sustainable Routes set us on our way and now more and more of us are leaving our cars at home, donning a helmet and making a greener journey to work. Our bikes are secure and dry whatever the weather and we arrive at the Signals studio full of vim and vigour.


The Bike2Work Scheme reckon cycling to work brings the following benefits to businesses:


• Fitter, healthier and more productive staff
• Healthy staff are less likely to be absent through stress or illness
• Reduce your business carbon footprint
• Cycling to work reduces congestion and demand for parking


Our experience seems to bear this out, and I was proud to arrive this morning to a nearly full shelter beside two empty car parking spaces.

 

        BikeBlog2        BikeBlog1

 

We know the motorbike isn't 'green' per se, but it is cool.

A little shout out here for our Creative Director who took cycling to another level last week, completing a 60 mile charity ride for Sue Ryder Care and raising nearly £500 so far. If you meant to donate and didn't get around to it yet you can do it here: http://www.justgiving.com/liveandletride

 

Our sporty clients ought to be pleased! You can see what we have done for the River and Rowing Museum on our 'Clients' tab. The work we've done for the Sports Heritage Network and Our Sporting Life can be seen right HERE.

CODE: Opening files on Android from AIR via a Java wrapper

Courtesy of Andrew D


Babyfoot

 

We enjoy a challenge in the Signals studio and during a recent AIR based project for the Android based Motorola Xoom we found one:

The tablet app needed to open files with their default application based on their file type/extension.

Sounds easy? Well if you're using Adobe AIR in the desktop environment it is and can be achieved using code similar to the following:

var file:File = File.desktopDirectory.resolvePath("a.pdf");
file.openWithDefaultApplication();

However, during development we soon discovered that Adobe AIR for Android does not support the openWithDefaultApplication function. Running this code on the Android device simply returned errors or did nothing at all. Furthermore we found the device did not support pdf viewing in either StageWebView or the browser. Attempting to use a combination of URLLoader, URLRequest and the navigateToURL function also proved ineffective.

In fact, the only way to view a pdf on the device was through a third party browser with a pdf viewer plug-in installed and loading the pdf from a hosted server, not a local version stored on the device. As we also needed support for other file types, such as Office documents and videos, we needed to find an alternative approach.

After a lot more research and testing we came across an article that gave us a solution and explains the issue in detail. This resulted in us using the following Java to interpret the AIR commands:

//Example for pdf open with default application
File file = new File(url);
if (file.exists())
{
     Intent intent = new Intent();
     intent.setAction(android.content.Intent.ACTION_VIEW);
     intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     intent.setDataAndType(Uri.fromFile(file), "application/pdf");
     try
     {
          getApplicationContext().startActivity(intent);
     }
     catch (ActivityNotFoundException e)
     {
          //Decide what to do if there is no application that handle the PDF MIME.
     }
}

Once our Flash Builder compiled AIR swf within the Java wrapper we were able to achieve the functionality we needed in our application.

Select the CODE tag to see more of our free code blog posts.

Interested in Smartphone and tablet apps?

So long, SEPTEMBER 2011

Sept2011End

For every first there must be a last. Weep not! For here is the back of September from the Signals Ltd calendar.

What will October bring?! 

OCTOBER 2011

Oct2011

This October we have a Digital Briefcase inspired Indiana Jones pun for you.

Digital Briefcase is a bespoke software application designed by Signals Ltd to let you present your digital media, on brand and with confidence.

See how we helped the British Library to present a variety of digital materials through a single branded interface.

CODE: The Signals ‘Paper Plane’ mini game

Courtesy of Andy Lloyd

PlaneGameWe really enjoy producing interactive work so during a review of our website we felt that something could be done to increase interactivity and add to the overall user experience on the home page.

As the animated Flash banner already included paper planes, we decided to extend this idea into a casual game, where the visitor could "pick up and throw" a paper plane across a virtual office.

CHALLENGE: Integrating a Speedometer for some visual feedback of the mouse movement speed.

CODE:

var needle:Sprite = ; 
var flying:Boolean = true;
var oldX:Number = 0;
var oldY:Number = 0;

if (flying)
{
TweenMax.to(needle, 0.3, {rotation:(xSpeed / 100) * 180});

return;
}
else
{
var updateSpeed:Number = ms.getXSpeed();

	if (updateSpeed <= 0)
	{
		needle.rotation = 0;

		return;
	}

	TweenMax.to(needle, 0.3, {rotation:(updateSpeed / 100) * 180});
}

private function calculateMouseSpeed(e:Event)
{
	newY = mouseY;
	ySpeed = newY - oldY;
	oldY = newY;
			
	newX = mouseX;
	xSpeed = newX - oldX;
	oldX = newX;
}

public function getXSpeed():Number
{
	return xSpeed;
}

 

Firstly, we created a variable called "flying" that is set to true when the plane is released. While this is false the speed of the plane is related to the movement of the mouse and calculated in the getXSpeed function, however once it is true the variable "xSpeed" is calculated every frame by applying some very basic physics.

After calculating a value for our movement speed, it is time to rotate the needle of the speedometer. To do this we used the "Tweenmax.to" method and the formula (speed/100) * 180 to determine the angle.

There was still one issue left: the needle will not rotate further than 180 degrees (hard right), but if the speed becomes negative (if we were to drag the mouse backwards for example) the needle could move past its ‘0' starting position. In order to prevent this from happening, we need to make sure that if the "updateSpeed" variable is ever less than 0 the needles rotation is fixed to 0 too. This is done using the second "if" statement above.

 

There'll be more code from Signals next month.

Select the CODE tag to see more of our free code blog posts.

 

Unity 3D Examples

We've just put some Unity 3D tests together and thought we'd share:

Unity is a rich 3D game engine for creating interactive content.

The exciting thing about Unity 3D is the speed and efficiency. It is simple to set up, it runs quickly in a browser and across platforms including Windows, Mac, Android and iPhone/iPad as well as games consoles and it allows us to develop for all these platforms from a single source.

We love Unity because it offers a multitude of options for Gamification, e-learning, and virtual environments.

As this little video demonstrates, it gives us the opportunity to play about with ideas in a development stage and to think about some exciting presentation solutions and interactive e-learning products.

Signals: Thinking Lean

Courtesy of Jamie S

For the last few months some of the Signals team have been taking Lean Sigma training with Future Learning Systems. Lean Sigma is an eLearning programme, aimed at improving business processes and providing client satisfaction. Those of us involved are on our way to qualifying with 'Green Belt' level certification.

Signals were prompted to adopt it in response to a client in the US who is himself a 'Six Sigma Black Belt'. We decided this was a standard we ought to embrace; it would help us to improve work flow, lose wastage and provide the very best value for our clients and their staff.

We'll have some more to say about Lean Thinking soon! In the meantime, a Lean Thinking diagram:

 

LeanDiagram

 

Signals think Lean:  Leading pump manufacturer Stuart Turner Ltd wanted to make it easier for its customers to order spare parts online, reduce the cost of sale and get the best use from a highly skilled workforce. This is how we helped.