FileReferenceViewLocalImg
package{
// forked from Kazutaka's FileReferenceViewLocalImg
import flash.display.Sprite;
import flash.display.Shape;
import flash.display.Loader;
import flash.display.Bitmap;
import flash.text.TextField;
import flash.net.FileReference;
import flash.net.URLLoader;
import flash.events.Event;
import flash.events.MouseEvent;
[SWF(width = "700", height = "700", backgroundColor = 0xFFFFFF, frameRate = "30")]
public class FlashTest extends Sprite {
private var imgSprite:Sprite;
private var myfile:FileReference;
private var btnSprite:Sprite;
private var imgMax:Number = 640;
function FlashTest(){
// write as3 code here..
setView();
initEvent();
}
private function setView():void{
btnSprite = new Sprite();
imgSprite = new Sprite();
var myShape:Shape = new Shape();
myShape.graphics.beginFill(0xcccccc);
myShape.graphics.lineStyle(0);
myShape.graphics.drawRoundRect( 10,10, 150,50,6,6);
var myText:TextField = new TextField();
myText.appendText(" ローカル画像\n 表示ボタン");
myText.x = 12;
myText.y = 10;
myText.selectable = false;
myText.mouseEnabled = false;
btnSprite.addChild( myShape );
btnSprite.addChild( myText);
addChild( btnSprite );
}
private function initEvent():void{
myfile = new FileReference();
myfile.addEventListener( Event.SELECT , fileSelect );
myfile.addEventListener( Event.COMPLETE, loadComplete );
btnSprite.addEventListener( MouseEvent.CLICK, fileBrowse );
btnSprite.addEventListener(MouseEvent.ROLL_OVER, overFunc);
btnSprite.addEventListener(MouseEvent.ROLL_OUT, outFunc);
btnSprite.buttonMode = true;
}
private function overFunc(evt:Event):void {
evt.currentTarget.alpha = 0.5;
}
private function outFunc(evt:Event):void {
evt.currentTarget.alpha = 1;
}
private function fileBrowse( evt:Event ):void {
myfile.browse();
}
private function fileSelect( evt:Event ):void {
myfile.load();
}
private function loadComplete(evt:Event):void {
var myLoader:Loader = new Loader();
myLoader.loadBytes( myfile.data );
myLoader.contentLoaderInfo.addEventListener( Event.INIT, initLoaded );
}
private function initLoaded(evt:Event):void{
var bmp:Bitmap = Bitmap( evt.target.content );
if(evt.target.content){
var bmp:Bitmap = Bitmap( evt.target.content );
bmp.y = 100;
if((bmp.width >imgMax)||(bmp.height >imgMax)){
if( bmp.width > bmp.height){
var wRatio:Number = imgMax / bmp.width;
bmp.width = imgMax;
bmp.height *= wRatio;
} else {
var hRatio:Number = imgMax / bmp.height;
bmp.height = imgMax;
bmp.height *= hRatio;
}
}
imgSprite.addEventListener( MouseEvent.MOUSE_DOWN, imgDrag)
imgSprite.buttonMode = true;
imgSprite.addChild( bmp );
addChild( imgSprite );
}
}
private function imgDrag(evt:MouseEvent):void{
evt.currentTarget.startDrag();
}
}
}