diff --git a/.gitignore b/.gitignore index 78b9238..5173815 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ *~ *.n *.swf - +.DS_Store diff --git a/HubbleSiteDailyImageChumby.hx b/HubbleSiteDailyImageChumby.hx index 00af07b..2c60db8 100644 --- a/HubbleSiteDailyImageChumby.hx +++ b/HubbleSiteDailyImageChumby.hx @@ -1,17 +1,90 @@ +import flash.MovieClip; + class HubbleSiteDailyImageChumby { + private static var imageHolder:MovieClip; + private static var logoHolder:MovieClip; + private static var myClip:MovieClip; + private static var logoWidth:Int = 280; + static public function main() { - var xml:Xml = Xml.createElement("gallery"); - var myClip:flash.MovieClip = flash.Lib.current; - - var t:flash.TextField = myClip.createTextField("test", 1, 0, 0, 200, 200); - - flash.XMLRequest.load('http://hubblesite.org/gallery/album/daily_image.php', - xml, - onData - ); + var initialized:Bool = false; + + myClip = flash.Lib.current; + + myClip.onEnterFrame = function() { + initialized = true; + myClip.onEnterFrame = function():Void {}; + loadLogo(); + } + } + + public static function loadImage() { + imageHolder = myClip.createEmptyMovieClip("imageholder", myClip.getNextHighestDepth()); + + var loadVars = new flash.LoadVars(); + loadVars.onData = function(s:String) { + var xmlfast = new haxe.xml.Fast(Xml.parse(s).firstElement()); + + var loader:flash.MovieClipLoader = new flash.MovieClipLoader(); + loader.onLoadComplete = function(target:MovieClip) { + target.onEnterFrame = function() { + target._alpha = 0; + if (target._width > target._height) { + var newHeight:Float = (target._height * flash.Stage.width) / target._width; + target._width = flash.Stage.width; + target._y = (flash.Stage.height - newHeight) / 2; + target._height = newHeight; + } else { + var newWidth:Float = (target._width * flash.Stage.height) / target._height; + target._height = flash.Stage.height; + target._x = (flash.Stage.width - newWidth) / 2; + target._width = newWidth; + } + target.onEnterFrame = function() {}; + + fadeIn(target, function(){}); + } + } + loader.loadClip(xmlfast.node.image_url.innerHTML, imageHolder); + } + loadVars.load('http://hubblesite.org/gallery/album/daily_image.php'); + } + + public static function loadLogo() { + logoHolder = myClip.createEmptyMovieClip("logoholder", myClip.getNextHighestDepth()); + + var loader:flash.MovieClipLoader = new flash.MovieClipLoader(); + loader.onLoadComplete = function(target:MovieClip) { + target.onEnterFrame = function() { + target.onEnterFrame = function() {}; + + var newHeight:Float = (target._height * logoWidth) / target._width; + target._width = logoWidth; + target._x = (flash.Stage.width - logoWidth) / 2; + target._y = (flash.Stage.height - newHeight) / 2; + target._height = newHeight; + + fadeIn(target, function() { + var t:haxe.Timer = new haxe.Timer(1500); + t.run = function() { + t.stop(); + loadImage(); + } + }); + } + } + loader.loadClip("http://hubblesite.org/gallery/graphics/gallery_nav_logo.gif", logoHolder); + } + + public static function fadeIn(target:MovieClip, c:Void->Void) { + var timer:haxe.Timer = new haxe.Timer(40); + target._alpha = 0; + timer.run = function() { + target._alpha += 10; + if (target._alpha >= 100) { + timer.stop(); + c(); + } + } } - - static private function onData(data : Null):Void { - trace("made it here"); - } } \ No newline at end of file diff --git a/Makefile b/Makefile deleted file mode 100644 index 8a6b873..0000000 --- a/Makefile +++ /dev/null @@ -1,6 +0,0 @@ -test: force_look - haxe test.hxml && neko HubbleSiteDailyImageChumbyTestRunner.n - rm HubbleSiteDailyImageChumbyTestRunner.n - -force_look: - true \ No newline at end of file diff --git a/classes/XMLReader.hx b/classes/XMLReader.hx deleted file mode 100644 index 8ffc4ee..0000000 --- a/classes/XMLReader.hx +++ /dev/null @@ -1,5 +0,0 @@ -class XMLReader { - public function new() { - - } -} \ No newline at end of file diff --git a/swf.hxml b/swf.hxml new file mode 100644 index 0000000..9ecbf99 --- /dev/null +++ b/swf.hxml @@ -0,0 +1,5 @@ +-main HubbleSiteDailyImageChumby +-swf chumby.swf +-D network-sandbox +-sef-version 7 +-swf-header 320:240:12:000000 \ No newline at end of file diff --git a/test.hxml b/test.hxml deleted file mode 100644 index 4a2e51f..0000000 --- a/test.hxml +++ /dev/null @@ -1,4 +0,0 @@ --main HubbleSiteDailyImageChumbyTestRunner --neko HubbleSiteDailyImageChumbyTestRunner.n --cp classes --cp test \ No newline at end of file diff --git a/test/HubbleSiteDailyImageChumbyTestRunner.hx b/test/HubbleSiteDailyImageChumbyTestRunner.hx deleted file mode 100644 index 01a47b3..0000000 --- a/test/HubbleSiteDailyImageChumbyTestRunner.hx +++ /dev/null @@ -1,7 +0,0 @@ -class HubbleSiteDailyImageChumbyTestRunner { - static function main() { - var r = new haxe.unit.TestRunner(); - r.add(new RemoteXMLReaderTest()); - r.run(); - } -} diff --git a/test/RemoteXMLReaderTest.hx b/test/RemoteXMLReaderTest.hx deleted file mode 100644 index 76c8c36..0000000 --- a/test/RemoteXMLReaderTest.hx +++ /dev/null @@ -1,11 +0,0 @@ -class RemoteXMLReaderTest extends haxe.unit.TestCase { - private var xr : XMLReader; - - override function setup() { - this.xr = new XMLReader(); - } - - function testParseXML() { - assertTrue(true); - } -} \ No newline at end of file