-
/**
-
* v0.1 code by dehash.com 2009
-
* based on example code at :
-
* http://bumpslide.googlecode.com/svn/trunk/as3/examples/zoom/ZoomDemo_01.as
-
* Released as open source under the BSD License
-
* http://www.opensource.org/licenses/bsd-license.php
-
*/
-
-
package {
-
-
import com.bit101.components.HBox;
-
import com.bit101.components.HSlider;
-
import com.bit101.components.Label;
-
import com.bit101.components.PushButton;
-
-
import com.bumpslide.ui.Applet;
-
import com.bumpslide.ui.ZoomPanel;
-
import net.stevensacks.utils.Web;
-
-
import flash.display.Bitmap;
-
import flash.display.Loader;
-
import flash.events.Event;
-
import flash.events.MouseEvent;
-
import flash.net.URLRequest;
-
-
public class ImageDisplayer extends Applet {
-
-
static private const CONTENT_URL:String = "starrynight1280.jpg";
-
private var zoomPanel:ZoomPanel;
-
private var image:Loader;
-
private var myZoomSlider:HSlider;
-
private var controls:HBox;
-
private var credits:HBox;
-
private var offset:uint = 50;
-
private var label:Label;
-
-
override protected function addChildren():void {
-
-
// load image with smoothing not applied
-
image = new Loader();
-
image.contentLoaderInfo.addEventListener(Event.INIT, function(e:Event):void {
-
(image.content as Bitmap).smoothing = false;
-
});
-
image.load(new URLRequest(CONTENT_URL));
-
-
// create zoom panel with image as content
-
zoomPanel = new ZoomPanel();
-
zoomPanel.content = image;
-
addChild(zoomPanel);
-
-
// create HBox to hold controls
-
controls = new HBox(this);
-
-
// create controls
-
new PushButton(controls, 0, 0, "Home", function():void {
-
zoomPanel.panTo(0, 0);
-
});
-
new PushButton(controls, 0, 0, "<<--", function():void {
-
zoomPanel.panLeft();
-
});
-
new PushButton(controls, 0, 0, "-->>", function():void {
-
zoomPanel.panRight();
-
});
-
new PushButton(controls, 0, 0, "/\\", function():void {
-
zoomPanel.panUp();
-
});
-
new PushButton(controls, 0, 0, "\\/", function():void {
-
zoomPanel.panDown();
-
});
-
myZoomSlider = new HSlider(controls, 0, 5, doZoom);
-
myZoomSlider.tick = 0.25;
-
myZoomSlider.minimum = 0.25;
-
myZoomSlider.maximum = 7;
-
myZoomSlider.value = 1;
-
-
addChild(controls);
-
-
zoomPanel.dragZoomControl.minZoom = .25;
-
zoomPanel.dragZoomControl.maxZoom = 7;
-
-
zoomPanel.zoomContent.cacheAsBitmap = true;
-
-
// create HBox to hold credits
-
credits = new HBox(this);
-
-
// create credits
-
var labelText:String = "Van Gogh - Starry Night - 1889 -";
-
labelText += "(source http://www.flickr.com/photos/financialaidpodcast/3956763480/)";
-
label = new Label(credits, 0, 0, labelText);
-
-
new PushButton(credits, 0, 0, "Image Source", getSource);
-
-
}
-
-
private function getSource(e:MouseEvent):void {
-
var link:String = "http://www.flickr.com/photos/financialaidpodcast/3956763480/";
-
Web.getURL(link, "_blank");
-
}
-
-
private function doZoom(event:Event):void {
-
zoomPanel.zoom = myZoomSlider.value;
-
}
-
-
/**
-
* Applets are resized when stage size changes, so re-center content during redraw
-
*/
-
override protected function draw():void {
-
zoomPanel.move(offset, offset);
-
zoomPanel.setSize(width * .85, height * .85);
-
controls.x = offset;
-
controls.y = offset / 2;
-
credits.x = offset;
-
credits.y = height * .95;
-
}
-
}
-
}