Categories
Extending Flash Flash

XML Reader Flash panel – Todo and Requests

A while ago, I created XML Reader Flash panel.
I’ve been using it (and colleagues) for some time now, and I found some points of improvement:

  • Doesn’t work correctly on a mac (scrollbar disappears)
  • External XML (fill in url of XML)
  • Remove \r and \n in node
  • Errors about wrong formed XML
  • Different methods of reading XML (XML-DOM, X-path, XML2Array, ….)
  • More information
Categories
Flash Improvement Misc Urban papercraft

Separate RSS feeds Papercraft and Flash

Because I talk about two topics on my blog that have absolutely nothing to do with each other I created (well, WordPress provided it) two separate RSS feeds for Urban papercraft and Flash.

Custom RSS Links

Categories
AS3 AS3 migration Flash

From AS2 to AS3 – Where did it go – onRelease

Last year I started working with AS3, and after having some startup problems, I’ve made my first application in it (not online yet).
The strange thing is, I started a new project and when I had to make a button from a movieclip, I immediately wrote it in AS2… 🙁

That AS2 is embedded deep into my brain and probably more people have this problem.
So I started this series of post about the stuff that’s changed in from AS2 to AS3.

I will probably regurgitate what other people already wrote something about, but it’s my “travel” trough AS3 land.

onRelease

One of things I use in every application that I build is onRelease.

This is what the ActionScript 2.0 Migration has to say about this:

ActionScript 2.0 ActionScript 3.0 Comments
onRelease() EventHandler flash.display.InteractiveObject dispatches event: mouseUp Replaced in the new event model by a mouseUp event.

In AS2 I know 3 ways to use it:

Categories
Design Flash Urban papercraft

Urban papercraft: Papercritters

An awesome combination: Flash and papercraft.

Papercritters is an online application to create and share papertoys.
Now possible to create a skin and see it in 3d.
It’s ideal for people with no Illustrator skillz, or who are not able to see objects in 3d. Its Pepakura and Illustrator in one!

You start of with a simple papertoy and you design a custom skin online (no need for other programs then you browser and a Flash plugin).

At the time of posting the site reached its maximum number of users, and when you do get the chance to get in it will take a very long time to load… It’s probably suffocating by it’s success. Try again some other time!

The site is very popular: 11000+ skins designed for the papercritter model. This must the most popular papermodel on the internet (and in the physical world)!!. Keep trying if you don’t get access because it’s really something

[via paper forest and the FWA]

Categories
AS3 Flash

AS3 – take one step at a time: step 1a

I’ve made a mistake, the code I original wrote doesn’t work (I’m glad nobody noticed it 😉 ). You can find the correct class here

My previous post is about my first step into ActionScript 3 (AS3) and in my case: trail and error is the best way to learn stuff.

But it takes some time to find out and sometimes it’s nice to have some help.

I found some help to fix this in the future : Patrick Mineault at 5 1/2 blog has created a AS2 to AS3 converter which you can test here and download here.

There is a web form to paste your code into and it will return your converted AS3 code (check it here).
There is also an command line exe in the zip file
I’m not very good at command line, so for your (and mine) convenience I will explain how to get the exe to work with a .BAT file (I work on a PC so the example only works on PC).

Download the zip file and extract it somewhere on your computer. In my case C:\tmp\convert
I’ve created to folders in the convert folder
C:\tmp\convert\input
C:\tmp\convert\output

and in the input folder I copied all the classes I’ve ever written.

Now create a file with a .BAT extension (in my case convert.bat) and it doesn’t matter where you put it, but I put it next to the convertas2as3.exe in C:\tmp\convert folder.

Open the file you just created and paste this in there:

pause
C:\tmp\convert\convertas2as3.exe -input "C:\tmp\convert\input" -output "C:\tmp\convert\output"

or adjust the path to the files you want to convert
save the file and open the .BAT file (in my case convert.bat) and all your classes you ever have written are converted to AS3…

Well as good as it get’s: it’s not 100 percent converted to AS3 but it helps you with most of your code, and helps you on your way to find the correct code.

example
take the code I translated in the previous post but now in a class file:

class nl.matthijskamstra.config.ConfigFile
{
	/**
	* Constructor 
	* To access and manipulate information about the boundaries of a SWF file.
	*/
	public function ConfigFile ()
	{
		// trace ("set flash to 'browser'-mode");
		_root._quality = "BEST";
		Stage.scaleMode = "noScale";
		Stage.showMenu = false;
		Stage.align = "TL";
	}
	/**
	* static function config.... same as above
	*
	* @usage   nl.matthijskamstra.config.ConfigFile.config ();
	*/
	static function config () : Void
	{
		var temp = new nl.matthijskamstra.config.ConfigFile ();
	}
}

and put it through the AS2 to AS3 online converter will become:

package  { 
class nl.matthijskamstra.config.ConfigFile
	import flash.ui.ContextMenu;
	import flash.display.Stage;
	{
		/**
		* Constructor 
		* To access and manipulate information about the boundaries of a SWF file.
		*/
		public function ConfigFile ()
		{
			// trace ("set flash to 'browser'-mode");
			_root._quality = "BEST";
			Stage.scaleMode = "noScale";
			Stage.showDefaultContextMenu = false;
			stage.align = "TL";
		}
		/**
		* static function config.... same as above
		*
		* @usage   nl.matthijskamstra.config.ConfigFile.config ();
		*/
		static public function config () : void
		{
			var temp = new nl.matthijskamstra.config.ConfigFile ();
		}
	}
	
}

this will not work without errors but will help you convert your AS2 code to AS3

package nl.matthijskamstra.config {

	import flash.display.MovieClip;	
	import flash.display.Stage;
	import flash.display.StageQuality;

	public class ConfigFile extends MovieClip {
		/**
		* Constructor 
		* To access and manipulate information about the boundaries of a SWF file.
		*/
		public function ConfigFile () {
			trace ('ConfigFile ')
			stage.quality = StageQuality.BEST;
			stage.scaleMode = "noScale";
			stage.showDefaultContextMenu = false;
			stage.align = "TL";
		}
		/**
		* static function config.... same as above
		*
		* @usage   nl.matthijskamstra.config.ConfigFile.config ();
		*/
		static public function config () : void
		{
			var temp = new nl.matthijskamstra.config.ConfigFile ();
		}		
	}

	
}

The config class that works!
package nl.matthijskamstra.config {
	
	import flash.display.MovieClip;	
	import flash.display.StageQuality;

	public class ConfigFile extends MovieClip {
		
		// Constants:
		public static var CLASS_REF = nl.matthijskamstra.config.ConfigFile;
		public static var CLASS_NAME : String = "ConfigFile";
		public static var LINKAGE_ID : String = "nl.matthijskamstra.config.ConfigFile";
		
		/**
		* Constructor
		* 
		* @usage   	import nl.matthijskamstra.config.ConfigFile; // import
		*			var __ConfigFile__ : ConfigFile = new ConfigFile ( this );
		* @param	$target_mc		a reference to a movie clip or object
		*/
		public function ConfigFile( $target_mc:MovieClip = null ) {
			// trace ( '+ ' + LINKAGE_ID + ' class instantiated');
			$target_mc.stage.quality = StageQuality.BEST;
			$target_mc.stage.scaleMode = "noScale";
			$target_mc.stage.showDefaultContextMenu = false;
			$target_mc.stage.align = "TL";
		}
		
		/**
		* static function config.... same as above
		*
		* @usage  	nl.matthijskamstra.config.ConfigFile.config(this);
		* 			ConfigFile.config (this);
		* @param	$target_mc		a reference to a movie clip or object	
		*/
		static public function config ($target_mc:MovieClip ) : void {
			var __config = new nl.matthijskamstra.config.ConfigFile ($target_mc);
		}
		
	} // end class
	
} // end package

I’m sorry for adding to the confusion which happens when you learn ActionScript 3!
The Stage class is a difficult change from AS2 to AS3, when I have some time I will explain.

Categories
AS3 Flash

AS3 – take one step at a time: step 1

I finally started programming with ActionScript 3 (AS3); I know, I not a early adopter… 😉

And the first steps in AS3 are as uncomfortable as the first time I started OOP programming … or when I started moved from AS1 to AS2…

Since I started working for NOISE 5 months ago and moved to Amsterdam, I haven’t had time to do learn AS3.
That luckily has changed 🙂 and I started learning the basics.

And the first obstacle I ran into was something very simple: I always use a basic document (FLA) with default library items, some layers I always use and some ActionScript code to align the stage:

_root._quality = "BEST";
Stage.scaleMode = "noScale";
Stage.showMenu = false;
Stage.align = "TL";
stop ();

I have this also in a class (AS2), so I thought it would be useful to rewrite this class in AS3.
and I wanted to use this in my new as3 files too… (remember that this is the first thing a tried)

First you need to create a document class:

Document Class
And in my case my document class was: ‘Main’


package  {

	public class Main {
		
		public function Main() {
			trace ('Main')			
		}
		
	}
	
}

(package generated by FlashDevelop)

Code didn’t pass; I got a Compiler Error:
5000: The class 'Main' must subclass 'flash.display.MovieClip' since it is linked to a library symbol of that type.


package  {

	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')			
		}
		
	}
	
}

I got some new errors:

  1. 1017: The definition of base class MovieClip was not found.
  2. 5000: The class ‘Main’ must subclass ‘flash.display.MovieClip’ since it is linked to a library symbol of that type.

So I added import flash.display.MovieClip;


package  {

	import flash.display.MovieClip;
	
	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')
		}
		
	}
	
}

Ahhh and now we can get the stage to work with my ‘old code’, let’s paste it into the new document:


package  {

	import flash.display.MovieClip;
	
	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')
			_root._quality = "BEST";
			Stage.scaleMode = "noScale";
			Stage.showMenu = false;
			Stage.align = "TL";
			
		}
		
	}
	
}

Auw: both _root and Stage doesn’t excited no more: I got an migration error


package  {

	import flash.display.MovieClip;	
	import flash.display.Stage;
	import flash.display.StageQuality;
	
	public class Main extends MovieClip {
		
		public function Main() {
			trace ('Main')
			stage.quality = StageQuality.BEST;
			stage.scaleMode = "noScale";
			stage.showDefaultContextMenu = false;
			stage.align = "TL";
		}
		
	}
	
}

And at last it works…
The only thing now to do, is to put it in the correct package.

Categories
Design

Another small update on my site design

Still refining the css for this blog, I’m getting there.

Today I added 2 new plugins to my list of WordPress plugins:

CG-FlashyTitles for the nicely rendered Headers, and this is one of the user-friendliest plugin I’ve ever seen.
CG-FlashyTitles
And is based upon sIFR

Contact Form ][ because my contact page didn’t have a contact form anymore. I know that sandbox has the possibility to add commentfrom, but does this at the bottom of the page, and I wanted it in the page.

There are some other plugins I want to activate (WP-PageNavi , Ultimate Tag Warrior and Related Entries), but they all need a little tempering with the .PHP files.
That not really a problem, but the release of WordPress 2.3 is very close.
And with that the release of Sandbox 1.0, so tempering with the PHP files have to wait till then.

Categories
Extending Flash Flash

Readable trace JSFL

Oke I’m getting into it, after comment trace JSFL and uncomment trace JSFL I created another trace related JSFL command.

It’s a extension on a trace that really says nothing;
you are testing the code you just written
trace (thisVar);
but you really want to:
trace ('thisVar: ' + thisVar);

And now you can: change the first trace into the second, more readable trace with just one click

How to install:
Save [mck] Readable trace.jsfl in the jsfl commands folder or just use the installer:

Read more about the Extension Manager

Limitation:

  • Only in one frame
  • When you use in the Action (F9) panel, the ‘pin active script’ to pin a couple of frames with actionscript, it doesn’t work

Creative Commons License This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Any requests?

Categories
Extending Flash Flash

Uncomment trace JSFL

Oke I did the damage, I will fix it….

In my previous post about comment trace JSFL I made it possible to comment all traces in a actionscript frame.
Well now I’ve made a JSFL command to make it possible to undo that.

Example:
// trace ("something");
becomes
trace ("something");

How to install:
Save [mck] UnComment trace.jsfl in the jsfl commands folder or just use the installer:

Read more about the Extension Manager

Limitation:
(it has the same limitations as [mck] Comment trace)

  • Only in one frame
  • When you use in the Action (F9) panel, the ‘pin active script’ to pin a couple of frames with actionscript, it doesn’t work
  • words with trace in it… example var traceThis = "foo";
  • Will not Uncomment block comment (/* ….. * / )

Creative Commons License This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Any requests?

Categories
Extending Flash Flash

Comment trace JSFL

Do you recognize the following situation?
You have to change a small thing in a FLA that colleague / freelancer made.
So you open the FLA export it, and the output window get filled with numbers, variables, booleans and other trace comments…

Of course you know that a trace should be removed after it did what you put it in for, but not everybody knows that.
So you decide to remove the traces in the actionScript layer:

  1. CTRL + F (find)
  2. Type in Find what: “trace (“
  3. and type in Replace with: “// trace (“
  4. press Replace button

or

  1. Commands
  2. [mck] Comment trace

(you can even give a command a keyboard shortcut)

It’s one of the features that I love from SE|PY, the AS-editor I’m using when I’m not scripting in the Flash IDE editor.

How to install:
Save [mck] Comment trace in the jsfl commands folder or just use the installer

Read more about the Extension Manager

Limitation:

  • Only in one frame
  • When you use in the Action (F9) panel, the ‘pin active script’ to pin a couple of frames with actionscript, it doesn’t work
  • words with trace in it… example var traceThis = "foo";

Creative Commons License This work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 2.5 License.

Any requests?