بررسی دلیل اجراشدن برنامه air (آموزش)

yaa110

کاربر فعال
در بسیاری از موارد به خصوص زمانی که قصد نوشتن یک برنامه Gadget و یا Widget دارید (مثل یک برنامه to-do) لازمه که دلیل اجراشدن برنامه را بررسی کنید تا در هر مورد وضعیت متفاوتی از برنامه دیده بشه. مثلا اگر برنامه به صورت خودکار در لاگین سیستم عامل اجرا شده بهتره که به صورت tray icon و در کنار ساعت (البته در ویندوز) قرار بگیره و کاربر صفحه اصلی برنامه را در هر بار اجرا شدن سیستم عامل نبینه، درحالیکه وقتی برنامه توسط کاربر اجرا شد اوضاع تغییر میکنه و کاربر باید صفحه اصلی برنامه را ببینه.برای این کار در Air کدهایی وجود داره که می تونید وضعیت اجراشدن برنامه را بررسی کنید. به طور کلی این کدها در کلاس InvokeEventReason قرار دارند. برای استفاده از این کلاس از کد زیر استفاده کنید:
کد:
import flash.desktop.NativeApplication;import flash.events.InvokeEvent;
import flash.desktop.InvokeEventReason;


NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, starting_reason);


function starting_reason(e:InvokeEvent):void {
	if (e.reason == InvokeEventReason.LOGIN) {
		trace("Login Reason");
	} else {
		trace("Other Reasons");
	}
}

ادامه مطلب و توضیحات بیشتر: http://flashcenter.ir/blog/?p=338
 

akherat

مدیر انجمن
مرسی
استفاده کردم

راجع به اوتو آپدیت هم اطلاعات داری؟
 

++Hadi++

Active Member
مرسی از آموزش مفیدتون
ببخشید یه کم کنجکاویم گل کرده...شاید خیلی به موضوع مورد آموزشتون ربط نداره...
بهترین راه برا قرار دادن برنامه تحت air تو start up چیه که خود کار بیاد بالا؟
چطور می شه فایلی رو که خودمون بوجود آوردیم رو طوری رو برنامه مپ کنیم (open with) که وقتی طرف روش دو بار کلیک کرد،برنامه Air ما بیاد بالا و اونو ران کنه؟
در ضمن اسم اون event که می تونیم یه فایل رو رو برنامه درگ کنیم تا برنامه ،اونو باز کنه چیه ؟
اینا همش در مورد یه برنامه stand alone embeded هست که به تازگی تو فلش cs6 می شه خروجی داد.
 

yaa110

کاربر فعال
راجع به اوتو آپدیت هم اطلاعات داری؟

سلام دوست عزیز، مطالبی را تو سایت ادوبی دیدم اما چون نیاز نشده دنبالش نبودم. انشاءالله بیشتر سرچ می کنم مطلب مناسبی پیدا کردم خدمتتون عرض می کنم.

بهترین راه برا قرار دادن برنامه تحت air تو start up چیه که خود کار بیاد بالا؟

سلام هادی عزیز، برای شروع خودکار در لاگین به نظرم کد زیر بهتر از بقیه روش هاست:
کد:
if(!flash.system.Capabilities.isDebugger){       
 NativeApplication.nativeApplication.startAtLogin = true;
}

چطور می شه فایلی رو که خودمون بوجود آوردیم رو طوری رو برنامه مپ کنیم (open with) که وقتی طرف روش دو بار کلیک کرد،برنامه Air ما بیاد بالا و اونو ران کنه؟

برای این کار اول باید در پنجره air Setting و قسمت Advanced در قسمت Associated files فایل با پسوند مورد نظرتون را تعریف کنید و آیکن های اون را مشخص کنید.
بعد باید با کد زیر برنامه خودتون را بعنوان برنامه اجراکننده اون پسوند خاص به سیستم عامل معرفی کنید:

کد:
NativeApplication.nativeApplication.setAsDefaultApplication("scp");
مثلا اینجا پسوند scp معرفی شده.

در نهایت باید برنامه را به اون پسوند خاص حساس کنید:
کد:
import flash.desktop.NativeApplication;import flash.filesystem.File;
import flash.events.InvokeEvent;


NativeApplication.nativeApplication.addEventListener(InvokeEvent.INVOKE, onInvoke);


function onInvoke(e:InvokeEvent):void {
    NativeApplication.nativeApplication.removeEventListener(InvokeEvent.INVOKE, onInvoke);
    if (e.arguments.length > 0) {
        file = new File(e.arguments[0]);
        if (file.type == ".scp") {
            trace(file.nativePath);
        }
    }
}

در ضمن اسم اون event که می تونیم یه فایل رو رو برنامه درگ کنیم تا برنامه ،اونو باز کنه چیه ؟

این یه نمونه کامل برای drop هستش:
کد:
import flash.desktop.NativeDragManager;import flash.desktop.Clipboard;
import flash.display.BitmapData;
import flash.desktop.ClipboardFormats;
import flash.desktop.ClipboardTransferMode;
import flash.filesystem.File;
import flash.events.NativeDragEvent;


drop_mc.addEventListener(NativeDragEvent.NATIVE_DRAG_ENTER, enterFile);
drop_mc.addEventListener(NativeDragEvent.NATIVE_DRAG_DROP, dropFile);


function enterFile(e:NativeDragEvent):void {
    if (e.clipboard.hasFormat(ClipboardFormats.FILE_LIST_FORMAT)) {
        NativeDragManager.acceptDragDrop(drop_mc);
    }
}


function dropFile(e:NativeDragEvent):void {
    var a:Array = e.clipboard.getData(ClipboardFormats.FILE_LIST_FORMAT, ClipboardTransferMode.CLONE_ONLY) as Array;
    for (var i:Number = 0; i < a.length; i++) {
        var file:File = a[i] as File;
        trace(file.nativePath);
    }
}

drop_mc اسم MovieClip ای که به drop حساسه و کاربر می تونه فایل خودش را به روی اون درگ کنه.
 
آخرین ویرایش:

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

بالا