forked from: Unique id generator
forked from String-based auto-number generator (diff: 35)
ActionScript3 source code
/**
* Copyright Glidias ( http://wonderfl.net/user/Glidias )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/1X66
*/
// forked from Glidias's String-based auto-number generator
package {
import flash.display.Sprite;
import com.bit101.components.*;
import flash.events.Event;
public class FlashTest extends Sprite {
private var labeler:Label;
private var labeler2:Label;
private var numStepper:NumericStepper;
public function FlashTest() {
// write as3 code here..
var vBox:VBox;
addChild( vBox = new VBox() );
numStepper = new NumericStepper(vBox);
numStepper.minimum = 1;
numStepper.maximum = int.MAX_VALUE;
numStepper.width = 200;
labeler = new Label(vBox);
labeler2 = new Label(vBox);
numStepper.addEventListener(Event.CHANGE, numStepperChange);
scaleX = 2;
scaleY = 2;
}
private function padd(val:int):String {
return val < 10 ? "0"+val : ""+val;
}
private function getYear(val:int):String {
return val.toString().slice(2);
}
private function getYearLastDigit(val:int):String {
return val.toString().slice(3);
}
private function numStepperChange(e:*):void {
var initial:int = numStepper.value ;
var date:Date = new Date();
var timeStr:String = date.getTime().toString();
//timeStr.slice(7) +
var dateStr:String = initial + "0"+ padd(date.getDate()) + padd(date.getMonth()) + "4";// timeStr.slice(timeStr.length - 3,1) + "10"+ initial+ padd(date.getDate()) + padd(date.getMonth()) + getYear(date.getFullYear()) + timeStr.slice(timeStr.length - 2);
labeler.text = dateStr;//AlphaID.encode(numStepper.value);
if (int(labeler.text) != Number(labeler.text)) {
labeler.text = "SORRY";
return;
}
var encoded:String = AlphaID.encode( int(labeler.text) );
labeler2.text = ""+encoded + " :: "+AlphaID.decode(encoded);
}
}
}
class AlphaID {
static public var index : String = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
static public function encode(_number : int) : String {
var strBuf : StringBuf = new StringBuf();
var i : int = 0;
var end : int = Math.floor(Math.log(_number) / Math.log(AlphaID.index.length));
while(i <= end) strBuf.add(AlphaID.index.charAt(Math.floor(_number / AlphaID.bcpow(AlphaID.index.length,i++)) % AlphaID.index.length) );
return strBuf.toString();
}
static public function decode(_string : String) : int {
var str : String = AlphaID.reverseString(_string);
var ret : int = 0;
var i : int = 0;
var end : int = str.length - 1;
while(i <= end) {
ret += int(AlphaID.index.indexOf(str.charAt(i)) * AlphaID.bcpow(AlphaID.index.length,end - i));
++i;
};
return ret;
}
static protected function bcpow(_a : Number,_b : Number) : Number {
return Math.floor(Math.pow(_a,_b));
}
static protected function reverseString(inStr : String) : String {
var ary : Array = inStr.split("");
ary.reverse();
return ary.join("");
}
}