forked from: [AS3 Coding Tools] Property Disposer

by zahir forked from [AS3 Coding Tools] Property Disposer (diff: 5)
♥0 | Line 92 | Modified 2010-11-15 21:33:07 | MIT License
play

ActionScript3 source code

/**
 * Copyright zahir ( http://wonderfl.net/user/zahir )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/33ke
 */

<?xml version="1.0" encoding="utf-8"?>
<!-- forked from clockmaker's [AS3 Coding Tools] Property Disposer -->
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark">
<!-- =====================================================
 メンバー変数のプロパティーを空っぽにする整形ツール。
 メモリ対策のための破棄処理を作るときに便利。
 ===================================================== -->
    <fx:Script>
        <![CDATA[
            import mx.controls.*;
            import mx.utils.StringUtil;

            /**
             * 整形メソッド
             */
            private function doArrange():void
            {
                // 改行コードを統一する
                var str:String = orijinal.text;
                str = str.split("\n\r").join("\n").split("\r").join("\n")

                // 変換
                var arr:Array = str.split("\n");
                var out:String = "";
                out = "public function destructor():void\n{\n";
                
                for (var i:int = 0; i < arr.length; i++)
                {
                    var str1:String = arr[i].split(";").join("");
                    var splits:Array = str1.split("=");
                    var splits2:Array = splits[0].split("var");
                    if (splits2.length == 1)
                        continue;
                    var splits3:Array = splits2[1].split(":");

                    var val:String;
                    if (splits3.length == 1)
                    {
                        val = "undefined";
                    }
                    else
                    {
                        switch (StringUtil.trim(splits3[1]))
                        {
                            case "Number":
                            case "int":
                            case "uint":
                                val = "0";
                                break;
                            case "Boolean":
                                val = "false";
                                break;
                            default:
                                val = "null";
                                break;
                        }
                    }

                    out += "\t" + StringUtil.trim(splits3[0]) + " = " + val + ";\n";
                }

                output.text = out + "}";
            }

            private function copy():void
            {
                System.setClipboard(output.text);
                Alert.show("Copied Output Script")
            }
        ]]>
    </fx:Script>

    <fx:Style>
        @namespace s "library://ns.adobe.com/flex/spark";
        s|TextArea {
            fontFamily: Courier;
        }
    </fx:Style>

    <s:Panel title="AS3 Property Disposer"
             width="100%"
             height="100%">
        <s:layout>
            <s:VerticalLayout horizontalAlign="center"
                              paddingBottom="10"
                              paddingLeft="10"
                              paddingRight="10"
                              paddingTop="10"
                              gap="10"/>
        </s:layout>
        <s:TextArea id="orijinal"
                    width="100%"
                    height="100%"
                    focusIn="orijinal.selectAll()"
                    text="var hoge : Number  = 1;&#xa;var moja : String  = 'mojamoja';&#xa;var piyo : Boolean = true;&#xa;var fuga;&#xa;private var foo : Number = 1;&#xa;public var bar  : String = 'mojamoja';&#xa;static var qux  : Point  = false;&#xa;const HOGE      : Matrix = new  Matrix();"/>
        <s:Button click="doArrange()"
                  label="Start"/>
        <s:TextArea id="output"
                    width="100%"
                    height="100%"
                    focusIn="output.selectAll()"/>
        <s:Button click="copy()"
                  label="Copy Clipboard"/>
    </s:Panel>
</s:Application>