2点の座標間の距離を計測する
こんな感じ。
var disY:Number = spA.y - spB.y;
var distance:Number = Math.sqrt((disX * disX) + (disY * disY));
var pt2:Point = new Point(spB.x, spB.y);
var distance:Number = Point.distance(pt1, pt2);
« 2007年04月 | メイン | 2007年06月 »
package com.growegg.utils.version{
import flash.net.URLRequest;
import flash.net.URLLoader;
import flash.net.URLStream;
import flash.utils.ByteArray;
import flash.filesystem.File;
import flash.filesystem.FileStream;
import flash.filesystem.FileMode;
import flash.events.Event;
import flash.system.Updater;
public class Version{
private var myLoader:URLLoader;
private var urlStream:URLStream;
private var fileData:ByteArray;
private var localVer:Number;
private var networkVer:Number;
private var localURL:String;
private var networkURL:String;
private var airURL:String;
// _localURL = Apolloに同梱するテキストへのパス
// ここにバージョンを記載(ex 0.7);
//
// _networkURL = ここにはサーバに置いた
// 最新バージョンが記載されたテキストへのパス(ex 0.8とか記載)
//
// _airUR = サーバに置いた最新airファイルへのパス
public function Version(_localURL:String, _networkURL:String, _airURL:String){
localURL = _localURL;
networkURL = _networkURL;
airURL = _airURL;
myLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, localCompleteHandler);
myLoader.load(new URLRequest(localURL));
}
private function localCompleteHandler(event:Event):void{
trace("local version : " + myLoader.data);
localVer = myLoader.data;
checkNetwork();
}
private function checkNetwork():void{
myLoader = new URLLoader();
myLoader.addEventListener(Event.COMPLETE, networkCompleteHandler);
myLoader.load(new URLRequest(networkURL));
}
private function networkCompleteHandler(event:Event):void{
trace("network version : " + myLoader.data);
networkVer = myLoader.data;
if(localVer < networkVer) update();
}
public function update():void{
urlStream = new URLStream();
fileData = new ByteArray();
urlStream.addEventListener(Event.COMPLETE, airLoadComplete);
urlStream.load(new URLRequest(airURL));
}
private function airLoadComplete(event:Event):void{
urlStream.readBytes(fileData, 0, urlStream.bytesAvailable);
writeAirFile();
}
var file:File;
private function writeAirFile():void{
file = File.createTempFile();
var fileStream:FileStream = new FileStream();
fileStream.addEventListener(Event.CLOSE, fileCloseHandler);
fileStream.openAsync(file, FileMode.WRITE);
fileStream.writeBytes(fileData, 0, fileData.length);
fileStream.close();
}
private function fileCloseHandler(event:Event):void{
var updater:Updater = new Updater();
updater.update(file);
}
}
}
