forked from: Unique id generator

by Glidias forked from String-based auto-number generator (diff: 35)
♥0 | Line 74 | Modified 2015-05-20 19:01:39 | MIT License
play

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("");
        }
        
    }

Forked