Archive for the ‘AS3’ Category

Notes on FreeSpin3D Tutorial on Adobe Edge (Dec 2009)

AS3, Adobe Products | Posted by admin
Dec 11 2009
Get Adobe Flash player

I had recently worked through a quick tutorial on FreeSpin3D on the Adobe Edge magazine December 2009 edition. I had noticed this software through an ad on Flex and Flash developer magazine and so I had decided to check out the demo. Of course, using 3D in real-time to design your site is very cool and convenient. The 3D Phone above is simply applying a motion tween on the layer containing the 3D object and using the trackball to change the rotation about the y-axis.

Here are some of my notes during my tutorial experience:

1)    CPU resources take a hit during development and during rendering. Would it be preferable to be working off a workstation during the design? Regardless, even on the freespin 3D website, the rotating the IPod was chugging along. I wonder if it is an issue with my computer? (However, it is a year old and runs off a dual core Centrino, it should be responding well.)

2)    Behaviors:

  • Mouse control doesn’t respond well
  • Adding behaviours can be finicky. In some cases, I could not delete the behaviors I worked with.

3)    I would have liked to manually enter the x-y-z rotation values in text fields beside the trackball – feature request perhaps?

4)    It’s nice that they offer a 20% discount when you download the tutorial. This is fair for those who have really tried out the software.

Update: Flash Magazine.com had an excellent review posted.

A Countdown App with AMFPHP and Flash CS4

AS3 | Posted by admin
Jul 21 2009

I made my first AMFPHP application with Flash CS4. (Inspired by Lee Brimelow’s AMFPHP tutorial.) It is basically a countdown timer by retrieving the current time from the server. (I made this in preparation for a conference at church, and figured that since we have visits from all over the world, getting the server time via the server [which was in Eastern Time] was the best approach instead of getting the date and time via the Actionscript date class which is client side.)

I found a PHP script by Louai Munajim to retrieve the time left in days; hours; and minutes. And inserted it in the “amfphp/services” folder on my server.

<?php

class CountDown {
    /**
    /* This service creates a countdown provided by parameters
    /* parameters: (year, month, day, hour, minute)
    /* @returns "days;hours;minutes"
    */


    function targetDate($year, $month, $day, $hour, $minute)
    {
        //--------------------------
        // author: Louai Munajim
        // website: www.elouai.com
        //
        // Note:
        // Unix timestamp limitations
        // Date range is from
        // the year 1970 to 2038
        //--------------------------
        //
        // Modified by David Jumeau
        //
        // make a unix timestamp for the given date
      $the_countdown_date = mktime($hour, $minute, 0, $month, $day, $year, -1);
   
      // get current unix timestamp
      $today = time();
   
      $difference = $the_countdown_date - $today;
      if ($difference < 0) $difference = 0;
   
      $days_left = floor($difference/60/60/24);
      $hours_left = floor(($difference - $days_left*60*60*24)/60/60);
      $minutes_left = floor(($difference - $days_left*60*60*24 - $hours_left*60*60)/60);
     
      // OUTPUT
      return $days_left.";".$hours_left.";".$minutes_left;
     
    }
   
}
?>

Then, in my .fla I placed a TextField on the stage with an instance name of: “countdown_txt”, and inserted this code in Flash in the Actions panel:

function onResult(response:Object):void {
trace("response &gt; " + response);

var time_left_array:Array = [];
time_left_array = response.split(";");

if (time_left_array[0] == "0") {
countdown_txt.text = "Today!\n" + ((time_left_array[1] == "0") ? "Right Now!\n" : (time_left_array[1] + " hours\n"));
} else {
countdown_txt.text = time_left_array[0] + " Days : " + time_left_array[1] + " Hrs : " + time_left_array[2] + " Min";
}

}

gw = new NetConnection();
res = new Responder(onResult, onFault);

gw.connect("http://yourserver/amfphp/gateway.php");
gw.call("CountDown.targetDate", res, 2009, 10, 4, 10, 0 ); // Oct 4 2009, 10 am, 0 minutes

Files:

The only issue that I had was that I was getting Flash Errors which prevented me from accessing the CountDown.php function. I found out that it was an internal server error (500) and found at the gotoandlearn forums that the .htaccess file was hindering access to the PHP method in question. Once deleting this file in the “amfphp” directory, amfphp worked fine.

Get Adobe Flash player

DJ

Alternate “Trace” Command in AS2 & AS3

AS2, AS3 | Posted by admin
Jul 21 2009

I had taken some video tutorials at Flash Extensions.com way back, and I always liked Robert Taylor’s appoach in using the trace command in Actionscript. I would represent this via the “tr” method in each of my classes so that when I am previewing the program, I can know in which class I can find the origin of my trace statements. AS3 is not much different since you can use multiple arguments in your function parameters.

The AS2 version used an undocumented arguments array in the parameters of a function like this:

// This method in a class called MyClass

private function tr(arguments):Void {

  if (arguments.length == 0) {
    trace("");
  } else {
    trace("[MyClass] ... " + arguments.join(" : "));
  }

}

In AS3,

// This method in a class called MyClass

private function tr(... args:Array):void {

  if (args.length == 0) {
    trace("");
  } else {
    trace("[MyClass] ... " + args.join(" : "));
  }

}

Holy Collision Detection Batman!

AS3 | Posted by admin
Jun 18 2009

colbert_collision_detectionCasually checking out my Tweets and Peter Elst put this link up: http://www.coreyoneil.com/portfolio/index.php?project=5

It is very difficult to perform collision detection. Usually, sometimes you need some kind of mathematical algorithm to carry it out. But Corey managed to do it at a pixel level and even at on gradient / alpha thresholds. Very impressive indeed! It’s funny to see the Stephen Colbert video. Highly recommended blog reading!

PureMVC notes from Tim Willison at FITC

AS3 | Posted by admin
May 05 2009

As FITC came and went at the end of April, the original developer for PureMVC Cliff Hall could not make it (sprained ankle), but Tim Willison covered for him. He posted some slides at his blog in regards to PureMVC development. He provides an example done in Flash. (I assume it to be in Flash CS4. Most examples are done in Flex. So this is a treat!)

Here are the links:

FITC: http://www.oddlystudios.com/?page_id=192&paged=3

Example, Part 1, 2, 3: http://www.oddlystudios.com/?page_id=192&paged=2

Part 4, 5, 6: http://www.oddlystudios.com/?page_id=192

DJ