Adobe Announces the Open Screen Project

Wednesday, April 30th, 2008

Adobe has just announced the Open Screen Project.

The Skinny:

  • Restrictions on use of the SWF and FLV/F4V specifications will be removed
  • The device porting layer APIs for Adobe Flash Player will be published
  • The Adobe Flash® Cast™ protocol and the AMF protocol for robust data services will be published
  • Licensing fees will be removed – making next major releases of Adobe Flash Player and Adobe AIR for devices free

What does it really mean? Well it could be the promise of a universal application platform and the ability to write an application and deploy it everywhere. But, we know, with the likes of Apple and Google, who haven’t really taken to the flash platform, that probably isn’t the case. To me it means that Adobe is allowing the community as a whole to participate in the direction that the flash platform takes. To develop what what the community wants and thinks needs to be developed. This is a good thing - yay Adobe and yay Flash!

A few more links to read:

Ryan Stewart

Techcrunch

Wired

Developers: http://www.adobe.com/openscreenproject/developers/

Businesses: http://www.adobe.com/openscreenproject/businesses/

Max 2007 - Presentation Resources Posted

Friday, October 5th, 2007

If you were looking for them, the presentation resources have been posted for David and Jun’s Max 2007 presentations on our labs site.

David is on Adobe - H.264 Article

Monday, September 17th, 2007

Check out the Article that David Wrote for Adobe just launched on devnet:

Adobe - Developer Center : Exploring Flash Player support for high-definition H.264 video and AAC audio

Pretty nifty I say! (Nice pic too…hehehe)

public var ding:Boolean;

public function jsutatest():void
{
return “It worked.”;
}

Adobe Releases AIR and Flex 3

Sunday, June 10th, 2007

Adobe has released some AIR. No not that kinda air, The Adobe Integrated Runtime, this is an update and the new name of Apollo.

Also, released was Flex 3 .
Of course these are both on Labs, so they are both pre-releases.

Now that Ted got everyone so excited, it is time to play…wish I wasn’t so sleepy.

Moxie’s New Features - Flex Builder 3

Monday, June 4th, 2007

So if you haven’t checked out Ted Patrick’s blog yet, do so now and keep an eye on it all week!.
He’s going to be posting new info on Moxie (Flex 3). So check it out, there are some really interesting additions to Flex Builder in the upcomming release.

Reading a file Asynchronously with ActionScript 3

Thursday, May 31st, 2007

Sometimes (okay, manytimes) files are large enough that the process of opening and reading its contents may take some time. To solve issues related to the extra time this may take AS3 allows you to open files asynchronously. I'd like to add to the information from the reading files with AS3 post. Here we'll cover the code necessary to open a file asynchronously and read the file contents as they become available.

Because we are now doing something asynchronously, we will be dealing with events. As the file contents are being read The FileStream object broadcasts progress events that we can listen for and respond to. This ensures that when we are reading data when the data is available.

So, onto the code:

Actionscript:
  1. // Imports
  2. import flash.filesystem.FileMode;
  3. import flash.filesystem.FileStream;
  4. import flash.filesystem.File;
  5. import flash.events.ProgressEvent;
  6. import flash.events.Event;
  7.  
  8. // Declare the FileStream and String variables
  9. private var _fileStream:FileStream;
  10. private var _fileContents:String;
  11.  
  12. private function onCreationComplete():void // Fired when the application has been created
  13. {
  14. var myFile:File = File.appResourceDirectory; // Create out file object and tell our File Object where to look for the file
  15. myFile = myFile.resolve("mySampleFile.txt"); // Point it to an actual file
  16.  
  17. _fileStream = new FileStream(); // Create our file stream
  18.  
  19. _fileStream.addEventListener(ProgressEvent.PROGRESS, onFileProgress); // Add our the progress event listener
  20. _fileStream.addEventListener(Event.COMPLETE, onFileComplete); // Add our the complete event listener
  21.  
  22. _fileStream.openAsync(myFile, FileMode.READ); // Call the openAsync() method instead of open()
  23. }
  24.  
  25. private function onFileProgress(p_evt:ProgressEvent):void // Event handler for the PROGRESS Event
  26. {
  27. _fileContents += _fileStream.readMultiByte(_fileStream.bytesAvailable, "iso-8859-1"); // Read the contens of the file and add to the contents variable
  28.  
  29. fileContents_txt.text = _fileContents; // Display the contents. I've created a TextArea on the stage for display
  30. }
  31.  
  32. private function onFileComplete(p_evt:Event):void // Event handler for the COMPLETE event
  33. {
  34. _fileStream.close(); // Clean up and close the file stream
  35. }

As for what all that code does - first off, import the required classes:

Actionscript:
  1. import flash.filesystem.FileMode;
  2. import flash.filesystem.FileStream;
  3. import flash.filesystem.File;
  4. import flash.events.ProgressEvent;
  5. import flash.events.Event;

Then we'll need to create a couple variables. First, the FileStream which we'll use to read our file and second, a String variable that we'll use to display the file contents.

Actionscript:
  1. private var _fileStream:FileStream;
  2. private var _fileContents:String;

Now we'll create an onCreationComplete() method. This method will handle the creationComplete event of the application to get things rolling. Inside the onCreationComplete() method we'll need to create out File object as well as the FileStream object.

Actionscript:
  1. private function onCreationComplete():void // Fired when the application has been created
  2. {
  3. var myFile:File = File.appResourceDirectory;
  4. myFile = myFile.resolve("mySampleFile.txt");
  5.  
  6. _fileStream = new FileStream();
  7. }

Still in the onCreationComplete() method, we'll need to handle those events that will be dispatched while reading the file asynchronously. The events that we will handle are:

  • ProgressEvent.PROGRESS - This will fire as the bytes are read from the file into the buffer.
  • Event.COMPLETE - This will fire when all the bytes of the file have been read into the buffer.
Actionscript:
  1. private function onCreationComplete():void // Fired when the application has been created
  2. {
  3. var myFile:File = File.appResourceDirectory;
  4. myFile = myFile.resolve("mySampleFile.txt");
  5.  
  6. _fileStream = new FileStream();
  7.  
  8. _fileStream.addEventListener(ProgressEvent.PROGRESS, onFileProgress)
  9. _fileStream.addEventListener(Event.COMPLETE, onFileComplete);
  10. }

The final part of the onCreationComplete() method is to open the file asynchronously. Add the following line to the end of the method:

Actionscript:
  1. _fileStream.openAsync(myFile, FileMode.READ);

Now to handle those events and read our file. First, we'll deal with the PROGRESS event. Inside the onFileProgress() event handler method, we read the availableBytes from the file and add it to our String variable. Notice the second parameter of the readMultiByte() method - "iso-859-1". This specifies the content type of the file that we are reading. I'll cover some of the other content types in a later post. So, keep an eye out for that one if you're curious. Finally, we update the TextArea, to show we are actually reading the file.

Actionscript:
  1. private function onFileProgress(p_evt:ProgressEvent):void
  2. {
  3. _fileContents += _fileStream.readMultiByte(_fileStream.bytesAvailable, "iso-8859-1");
  4.  
  5. fileContents_txt.text = _fileContents;
  6. }

We still need to clean up after ourselves, so in the onFileComplete() method, we'll need to close out FileStream object.

Actionscript:
  1. private function onFileComplete(p_evt:Event):void
  2. {
  3. _fileStream.close();
  4. }

A very simple example, and it is still only text that we are reading. Next time I'd like to cover how to read different file types. So, like I said, keep an eye our for that post.

ColdFusion 8 Beta is now on Labs

Tuesday, May 29th, 2007

The public BETA of ColdFusion 8 has been uploaded to Labs!

Like Ray Camden said, its going to be a late night...

Reading a file with ActionScript 3

Saturday, May 26th, 2007

The ALPHA release of Apollo, Adobe's cross-operating system runtime allows for some pretty sweet functionality:

  • Drag-and-drop support
  • Rich clipboard access
  • Desktop and system
    shortcuts

What I was excited about was the File API. The ability to access, read and write to files is something that is completely necessary in a desktop applications, not to mention, exciting to just play with in ActionScript. Its also something that allows for those Web applications that will be ported to desktop applications, to break out of the constraints of the Web (browser security etc.).

I'd like to give a simple example of the File API and get you started on the how's. Its not that difficult, so lets get started. I'll show you the code...then explain.

Simple File Read Example:

Actionscript:
  1. import flash.filesystem.FileMode;
  2. import flash.filesystem.FileStream;
  3. import flash.filesystem.File;
  4.  
  5. var myFile:File = File.appResourceDirectory; // Create out file object and tell our File Object where to look for the file
  6. myFile = myFile.resolve("mySampleFile.txt"); // Point it to an actual file
  7.  
  8. var fileStream:FileStream = new FileStream(); // Create our file stream
  9. fileStream.open(myFile, FileMode.READ);
  10.  
  11. var fileContents:String = fileStream.readUTFBytes(fileStream.bytesAvailable); // Read the contens of the file
  12. fileContents_txt.text = fileContents; // Display the contents. I've created a TextArea on the stage for display
  13.  
  14. fileStream.close(); // Clean up and close the file stream

First, we'll need to import the following classes:

Actionscript:
  1. import flash.filesystem.FileMode;
  2. import flash.filesystem.FileStream;
  3. import flash.filesystem.File;

Next, we'll need to create our File object so we can let our application know where the file we want to read exists. We'll use the file.appResourceDeirectory to locate the file in relation to our application, then the resolve method of the File object myFile to locate the actual file.

Actionscript:
  1. var myFile:File = File.appResourceDirectory;
  2. myFile = myFile.resolve("mySampleFile.txt");

Now we'll need to actually open the file using the FileStream object. So, we create a new FileStream object, then call the open() method and pass it the File object as well as the FileMode of READ.

Actionscript:
  1. var fileStream:FileStream = new FileStream();
  2. fileStream.open(myFile, FileMode.READ);

We have our file open, so lets go ahead and read the contents of the file. The file is a text file, so we'll simple read the file contents into a String variable using the readUTFBytes() method of out FileStream object. Depending on the type of file and the contents of that file, you will want to use a different read method. Like I said, we'll keep it simple for now. The readUTFBytes() method requires the number of bytes to read. We'll pass the bytesAvailable property of the FileStream object for this parameter. The bytesAvailable prooperty, in this case, is the total bytes for the file. Finally set the value returned from the readUTFBytes() call equal to our String variable.

Actionscript:
  1. var fileContents:String = fileStream.readUTFBytes(fileStream.bytesAvailable);

Alright! Now we have our String variable that contains the contents of our text file. From this point you can do anything you want with it. In this example, I've just set the text property of a TextArea to the value of our String variable

There is one final thing to do, and that is clean up. Make sure you call the close() method of the FileStream object once you are done reading the file.

Actionscript:
  1. fileStream.close();

So that is all you need to get started with the File API. There are a few more things that I'd like to go into detail about, so I'll make sure to post about reading file types other than plain text. I'd also like to create an example of opening a file asynchronously, so look for posts on these subjects soon.

Advanced ActionScript 3 with Design Patterns

Thursday, May 10th, 2007
5/5

I was very excited to receive the book Advanced ActionScript 3 with Design Patterns I had heard great things about the book and was not disappointed as I read through it.

I just happen to be stuck in jury duty for a full day and as I waited for the city and county of Denver to decide if they required my services I was able to read through most in the book in a morning. The really nice thing about this book is the lack of fluff. It is very direct, very to-the-point and very useful.
There were quite a few lessons that I learned (one would be typing a variable to an Interface...tre useful!) through out the book. Not to mention to the descriptions of many of the more popular design patterns around. I'd say Joey Lott and Danny Patterson have done a fine job presenting ActionScript 3 as applied to development with a focus on design patterns.
The only complaint that I have heard, is that that it can become a little repetitive. If you are very familiar with ActionScript syntax, you may want to skim many of the chapters for items that catch your eye and look to be good tips or new to you.
Rated 5/5 on May 10 2007
Vote on John’s reviews at LouderVoice
LouderVoice review tags:

ApolloRanch in Boulder CO

Saturday, May 5th, 2007

ApolloRanch is a mini-conference similar to ApolloCamp. Thanks to Xylem CCI (Xlyem and Creation Chamber merged on April 30th) for putting together and hosting the ApolloRanch, they've done a great job so far! ApolloRanch is at the Fisk Planetarium (shoot for the starts Apollo!) on the CU campus in Bolder.

Mike Chambers gave the keynote as well as a "creating your first Apollo application" presentation.

Here is a frew of the highlights:

  • Apollo Beta to be released on Labs around mid June (keep an eye on Labs)
  • Many of the missing APIs will be in the beta; drag-and-drop, clipboard
  • Philo (Adobe Media Player) Preview: Very interesting media player. RSS feed based "channels" for video contnet delivery (FLV).

Some more of the release timeline:

  • Apollo 1.0, Moxie (Flex 3.0), Philo 1.0 - late Fall early Winter
  • Apollo dot releases - first quarter 2008

Links for the sample apps

Find entries :

Want to subscribe?

  Subscribe in a reader or,
Subscribe via email:

About me

I'm a senior developer at RealEyes Media, Adobe Certified Instructor and Adobe Certified Professional. Here you'll get my ideas and experience Flex, Flash, ColdFusion and related technologies as well as some generally off the wall stuff.