About

<#TEMPLATE_INCLUDE_NINEPAGE_ABOUTME#>
  • Jan

    25

    我依然清晰的记得2005年初(也是这个时节,农历2004即将过年),我在POCO社区看到了我人生中的第一本电子杂志《PocoZine》,那时的我心情非常激动,我迫不及待的将那份杂志分享给了周边的设计师、美工和摄影师朋友们,他们也一致表示非常喜欢这种翻页的表现形式,我们都被它的这种有趣的表现形式所吸引;

    尽管现在回首去看那本第一期的《PocoZine》时,会觉的它翻页效果还远没有像现在这么逼真,并且是硬翻页的效果;没有太多复杂的交互操作,也没有太多花哨的动画。但我仍然喜欢看它。

    More...

    Jan

    20

    要求:从一个静态的二维数组动态生成如图所示的XML节点(一般用于目录树结构)


    提示:每个元素都有自带的属性(图中用黑色的1、2、3、4……表示),所以元素不能进行位置重排,读取数组元素时按从左向右的顺序读取;其中每个元素的层级深度已知的(图中用红色的0、1、2、3、4……表示)。

    //需要解析成XML的静态数组(样例数组)
    var dataArray:Array = [["A1", 0], ["B1", 1], ["C1", 2], ["B2", 1], ["C2", 2], ["C3", 2], ["D1", 3], ["D2", 3], ["E1", 4], ["B3", 1], ["A2", 0], ["B4", 1], ["B5", 1]];
    //创建空XML实例,这里是AS3版本为例(如果是AS2版本,将XMLDocument类改为XML类即可)
    var xml:XMLDocument = new XMLDocument();
    //根元素
    var root_node = xml.createElement("root");
    //将根元素添加到XML树
    xml.appendChild(root_node);
    //最近一次层级深度
    var last_level:Number = 0;
    //当前节点引用
    var node:XMLNode = xml.firstChild;
    for (var n:Number = 0; n<dataArray.length; n++) {
        //当前层级深度
        var now_level:Number = dataArray[n][1];
        //元素名称
        var element=dataArray[n][0];
        //当前节点元素
        var element_node = xml.createElement(dataArray[n][0]);
        //一个参数用以对比当前元素层级深度与上一次元素层级深度作为对比
        var distance_level:Number = now_level-last_level;
        //
        if (distance_level>0) {
            //如果大于0就成为子节点
            node = node.lastChild;
        } else if (distance_level == 0) {
            //等于0作为并列节点
            node = node.parentNode.lastChild;
        } else {
            //小于0就成为某个父节点的并列节点
            while (distance_level++<0) {
                node = node.parentNode;
            }
        }
        last_level = now_level;
        node.appendChild(element_node);
    }
    trace(xml);

     

    Jan

    19

    [AS1/2/3]字符串unicode编/解码

    • 0 Comments
    • Flash Platform
    //字符串转换成unicode映射
    function unicode_escape(string:String):String {
        var _string:String = string;
        var _arr:Array = new Array();
        for (var n:Number = 0; n<_string.length; n++) {
            _arr[n] = "0x"+_string.charCodeAt(n).toString(16);
        }
        _string = _arr.join("/");
        return _string;
    }
    trace(unicode_escape("ab:c&*^&("));
    //unicode解码成字符串
    function unicode_unescape(string:String, delimiter:String):String {
        var _string:String = string;
        var _arr:Array = _string.split(delimiter);
        for (var n:Number = 0; n<_arr.length; n++) {
            _arr[n] = String.fromCharCode(_arr[n]);
        }
        _string = _arr.join("");
        return _string;
    }
    trace(unicode_unescape("0x61/0x62/0xff1a/0x63/0x26/0x2a/0x5e/0x26/0x28", "/"));