Hi all,

I'm trying (desperately) to re-work the code here untoldentertainment.com (AS3) to AS2...

First time I'm using sharedObject and also, bit confused about calling the .xml file via the php.

Here's the actionscript:

Actionscript Code:
var twitterXML:XML; // This holds the xml data
var cachedTwitterData:SharedObject; // This stores the data loaded from the Flash cookie
var twitterPHPScriptPath:String;
var myTwitterID:String;
var wereAllowedToWriteToTheFlashCookie:Boolean; // You can use this value to decide whether or not to make repeated save attempts
 
//Put your Twitter username here.  For example, ours is "untoldEnt" :
myTwitterID = "aneemal";
// Put the path to your php script here:
twitterPHPScriptPath = "tweet.php";
wereAllowedToWriteToTheFlashCookie = true; // (let's be optimistic until we discover otherwise)
// Check to see if the user has already retrieved the Twitter updates and stored them in a Flash cookie:
loadTwitterDataFromFlashCookie();
 
function loadTwitterDataFromFlashCookie() {
    // Call up the Twitter data from the Flash cookie on the user's machine:
    cachedTwitterData = SharedObject.getLocal("twitter");
    var timeStamp:Date = cachedTwitterData.data.timeStamp;
    if (timeStamp != null) {
        // The timeStamp variable is in there, which means we've retrieved Twitter info for this user at some point.
        // Now let's check the timeStamp. If the last time we grabbed Twitter data was too long ago, let's grab fresh info:
        if (hasExpired(timeStamp)) {
            // The most recent copy of the Twitter data in the Flash cookie is old!  Let's get some fresh data:
            trace("cookie has expired!  let's get some fresh data");
            loadTwitterXML();      
        } else {
            // It hasn't been very long since we grabbed a fresh copy of the Twitter data. Let's just use what we've got in the Flash cookie:
            trace("cookie is fresh. display the data.");
            twitterXML = cachedTwitterData.data.twitterXML;
            showTwitterStatus();
        }
    } else {
        // If there's no timeStamp variable in there, then the cookie's empty.  We need to hit Twitter to grab our data for the first time.
        loadTwitterXML();              
    }          
}
 
function saveTwitterDataToFlashCookie() {
    flushStatus = cachedTwitterData.flush(10000);
    if (flushStatus == true) {
        trace("********* save complete. ***********\n");
        finishedHandlingTwitterData();
    } else if (flushSatus == false) {
        trace("User denied permission -- value not saved.\n");
        wereAllowedToWriteToTheFlashCookie = false;
    }
}
 
function finishedHandlingTwitterData() {
    trace("Twitter data saved.");
}
 
function hasExpired(timeStamp:Date) {
    // Store the date RIGHT NOW, to compare against the Flash cookie timeStamp:
    var now:Date = new Date();
    // Let's say that the cookie expires after 1 hour, 0 minutes and zero seconds:
    var expiryHours:Number = 1;
    var expiryMinutes:Number = 0;
    var expirySeconds:Number = 0;
 
    // Store some handy conversion values:
    var msPerHour:Number = 3600000;
    var msPerMinute:Number = 60000;
    var msPerSecond:Number = 1000;
 
    // Multiply those values to get the expiry time in milliseconds:
    var expiryTime:Number = (expiryHours * msPerHour) + (expiryMinutes * msPerMinute) + (expirySeconds * msPerSecond);
 
    // Return whether or not the timeStamp is past the expiry date:
    return (now.getTime() - timeStamp.getTime() > expiryTime)
}

function loadTwitterXML() {
    var getTwitter:XML = new XML();
    getTwitter.ignoreWhite = true;
    getTwitter.onLoad = function(success:Boolean) {
        if (success) {
            finishLoadingXML();
        } else {
            trace ("Error loading php");
        }
    }
    getTwitter.load(twitterPHPScriptPath + "?twitterId=" + myTwitterID);           
}
 
function finishLoadingXML() {
    // Populate the xml object with the xml data:
    cachedTwitterData = SharedObject.getLocal("twitter");
    // Set the date/time RIGHT NOW:
    cachedTwitterData.data.timeStamp = new Date();
    twitterXML = new XML;
    // Store the twitterXML data:
    cachedTwitterData.data.twitterXML = twitterXML;
    // (Try to) save the whole shebang the user's Flash cookie:
    saveTwitterDataToFlashCookie();
    showTwitterStatus();
}
 
function showTwitterStatus() {
    trace("showTwitterStatus");
    // Uncomment these lines if you want to see all the fun stuff Twitter sends you:
    //trace(twitterXML);
    //trace(twitterXML.head);
    // Prep the text field to hold our latest Twitter update:
    twitter_txt.wordWrap = true;
    twitter_txt.autoSize = true
    // Populate the text field with the first element in the status.text nodes:
    twitter_txt.text = twitterXML;
}

And here's the php:
PHP Code:
<?php
 
$twitterId 
= isset($_REQUEST["twitterId"]) ? $_REQUEST["twitterId"] : '';
if( 
$twitterId == "" ){
                exit;
}
$file file_get_contents("http://twitter.com/statuses/user_timeline/" $twitterId  ".xml" );
echo 
$file;
 
?>
Please, please, please, help me get this project off the ground!

Many thanks for any input.