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

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

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

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


attachment.php



مثال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

جدیدترین ارسال ها

بالا