کلاس سورس باز MOption برای ذخیره تنظیمات در Adobe AIR

شروع موضوع توسط Mohammad_Shams ‏7 ژانویه 2011 در انجمن Action Script 3

  1. Mohammad_Shams

    Mohammad_Shams Member

    ارسال‌ها:
    68
    تشکر شده:
    155
    امتیاز دستاورد:
    6
    در برنامه‌های AIR، به دلیل Rich Internet Application بودن آنها محدودیتی برای خواندن فایلها وجود ندارد. برای نوشتن آنها هم با استفاده از راهکارهای خاصی می‌توان دسترسی کاملی به دیسک داشته و فایلها را در مسیرهای مختلف ذخیره نمود.

    کلاس MOption با توجه به این مسئله که برنامه‌های AIR جنبه Application بودن هم دارند، با هدف ذخیره سازی تنظیمات یک برنامه در فایلهای مبتنی XML طراحی شده است. این کلاس از کلاسهای File و FileStream برای ذخیره سازی بر روی دیسک استفاده نموده و فرآیند ثبت و بازیابی مقادیر را در برنامه‌های AIR تا حد زیادی ساده خواهد کرد.
    ضمنا این کلاس open source است.

    برای تست آن هم فقط کافی است یک متغیر از آن ساخته، مسیر فایل را بدهید و دستور loaddata را بزنید. اگر فایل قبلا موجود باشد که باز میشود، در غیر اینصورت فایل ساخته میشود.


    [​IMG]


    مثال1:

    PHP:
    var opt:MOption;{
        opt = new MOption(txtPath.text);
        opt.loadData();
    مثال کاملتر:

    PHP:
    import com.mshams.MOption;
    import flash.events.Event;
    import flash.events.MouseEvent;

    var opt:MOption;

    btnOpen.addEventListener(MouseEvent.CLICK, evtOpen);
    btnSet.addEventListener(MouseEvent.CLICK, evtSet);
    btnGet.addEventListener(MouseEvent.CLICK, evtGet);
    btnGetall.addEventListener(MouseEvent.CLICK, evtGetall);
    btnSav.addEventListener(MouseEvent.CLICK, evtSav);

    function evtOpen(e:MouseEvent)
    {
        opt = new MOption(txtPath.text);
        opt.addEventListener(MOption.LOAD_COMPLETE, onEvents);
        opt.addEventListener(MOption.LOAD_ERROR, onEvents);
        opt.addEventListener(MOption.PARSE_ERROR, onEvents);
        opt.addEventListener(MOption.SAVE_ERROR, onEvents);
        opt.addEventListener(MOption.SAVE_COMPLETE, onEvents);
        opt.addEventListener(MOption.OPTION_RETRIVE_ERROR, onEvents);
        opt.loadData();
    }

    function evtSet(e:MouseEvent)
    {
        var s:String = txtSet.text;    
        opt.setOption(s.split(",")[0], s.split(",")[1]);
        opt.setOption("_version", "123");
        opt.setOption("_new", 11.8374 - 9.1);
        opt.setOption("_nccew", 11.8374);
        opt.setOption("_zxzx", 11.8374);
        opt.setOption("_dfg", 11.8374);
    }

    function evtSav(e:MouseEvent)
    {
        opt.saveData();
    }

    function evtGet(e:MouseEvent)
    {
        txtOutput.appendText("\n" + opt.getOption(txtGet.text).toString());
        //trace("val(version)=", opt.getOption("_version"));
        //trace("val(_new)=", opt.getOption("_new"));
        //trace("val(_new)=", opt.getOption("_new"));
        //trace("val(version)=", opt.getOption("_version"));
    }

    function evtGetall(e:MouseEvent)
    {
        var arr:Array = opt.getArrayOption();
        txtOutput.text = "";
        txtOutput.appendText("Options count: " + arr.length.toString() + "\n\n");
        for (var i:int = 0; i<arr.length; i++)
        {
            txtOutput.appendText("[" + arr[i][0] + "] = " + arr[i][1] + "\n");
        }
    }

    function onEvents(e:Event)
    {
        switch (e.type)
        {
            case MOption.LOAD_COMPLETE :
                txtOutput.appendText("LOAD_COMPLETE");
                break;
            case MOption.LOAD_ERROR :
                txtOutput.appendText("LOAD_ERROR");
                break;
            case MOption.SAVE_ERROR :
                txtOutput.appendText("SAVE_ERROR");
                break;
            case MOption.SAVE_COMPLETE :
                txtOutput.appendText("SAVE_COMPLETE");
                break;
            case MOption.OPTION_RETRIVE_ERROR :
                txtOutput.appendText("OPTION_RETRIVE_ERROR");
                break;
            case MOption.PARSE_ERROR :
                txtOutput.appendText("PARSE_ERROR");
                break;
        }
    }
    مطلب مرتبط
     

    پیوست ها:

    • moption.PNG
      moption.PNG
      اندازه فایل:
      کیلوبایت 17.9
      نمایش ها:
      91
    • MOption.zip
      اندازه فایل:
      کیلوبایت 612.4
      نمایش ها:
      68
    نوشته شده توسط Mohammad_Shams در ‏7 ژانویه 2011
    aminzamani68، smmousazadeh، amird و 6 نفر دیگر از این ارسال تشکر کرده اند.

به اشتراک بگذارید