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

شروع موضوع توسط yaa110 ‏6 ژانویه 2013 در انجمن برنامه فلش Flash

کلمات کلیدی:
  1. yaa110

    yaa110 کاربر فعال

    ارسال‌ها:
    206
    تشکر شده:
    507
    امتیاز دستاورد:
    16
    در بسیاری از موارد به خصوص زمانی که قصد نوشتن یک برنامه Gadget و یا Widget دارید (مثل یک برنامه to-do) لازمه که دلیل اجراشدن برنامه را بررسی کنید تا در هر مورد وضعیت متفاوتی از برنامه دیده بشه. مثلا اگر برنامه به صورت خودکار در لاگین سیستم عامل اجرا شده بهتره که به صورت tray icon و در کنار ساعت (البته در ویندوز) قرار بگیره و کاربر صفحه اصلی برنامه را در هر بار اجرا شدن سیستم عامل نبینه، درحالیکه وقتی برنامه توسط کاربر اجرا شد اوضاع تغییر میکنه و کاربر باید صفحه اصلی برنامه را ببینه.برای این کار در Air کدهایی وجود داره که می تونید وضعیت اجراشدن برنامه را بررسی کنید. به طور کلی این کدها در کلاس InvokeEventReason قرار دارند. برای استفاده از این کلاس از کد زیر استفاده کنید:
    کد (Text):
    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
     
    نوشته شده توسط yaa110 در ‏6 ژانویه 2013
    web4ourworld، BehrouzPc، FLV و 4 نفر دیگر از این ارسال تشکر کرده اند.
  2. akherat

    akherat مدیر انجمن

    ارسال‌ها:
    594
    تشکر شده:
    661
    امتیاز دستاورد:
    93
    مرسی
    استفاده کردم

    راجع به اوتو آپدیت هم اطلاعات داری؟
     
    نوشته شده توسط akherat در ‏6 ژانویه 2013
    yaa110 از این پست تشکر کرده است.
  3. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,801
    امتیاز دستاورد:
    36
    مرسی از آموزش مفیدتون
    ببخشید یه کم کنجکاویم گل کرده...شاید خیلی به موضوع مورد آموزشتون ربط نداره...
    بهترین راه برا قرار دادن برنامه تحت air تو start up چیه که خود کار بیاد بالا؟
    چطور می شه فایلی رو که خودمون بوجود آوردیم رو طوری رو برنامه مپ کنیم (open with) که وقتی طرف روش دو بار کلیک کرد،برنامه Air ما بیاد بالا و اونو ران کنه؟
    در ضمن اسم اون event که می تونیم یه فایل رو رو برنامه درگ کنیم تا برنامه ،اونو باز کنه چیه ؟
    اینا همش در مورد یه برنامه stand alone embeded هست که به تازگی تو فلش cs6 می شه خروجی داد.
     
    نوشته شده توسط ++Hadi++ در ‏6 ژانویه 2013
    FLV، mohammad.sub7، akherat و یک نفر دیگر از این ارسال تشکر کرده اند.
  4. yaa110

    yaa110 کاربر فعال

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

    سلام هادی عزیز، برای شروع خودکار در لاگین به نظرم کد زیر بهتر از بقیه روش هاست:
    کد (Text):
    if(!flash.system.Capabilities.isDebugger){      
     NativeApplication.nativeApplication.startAtLogin = true;
    }
    برای این کار اول باید در پنجره air Setting و قسمت Advanced در قسمت Associated files فایل با پسوند مورد نظرتون را تعریف کنید و آیکن های اون را مشخص کنید.
    بعد باید با کد زیر برنامه خودتون را بعنوان برنامه اجراکننده اون پسوند خاص به سیستم عامل معرفی کنید:

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

    در نهایت باید برنامه را به اون پسوند خاص حساس کنید:
    کد (Text):
    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);
            }
        }
    }
    این یه نمونه کامل برای drop هستش:
    کد (Text):
    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 حساسه و کاربر می تونه فایل خودش را به روی اون درگ کنه.
     
    آخرین ویرایش: ‏7 ژانویه 2013
    نوشته شده توسط yaa110 در ‏7 ژانویه 2013
    web4ourworld، BehrouzPc، FLV و 3 نفر دیگر از این ارسال تشکر کرده اند.
  5. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,801
    امتیاز دستاورد:
    36
    خیلی ممنون استاد...اساتیدی مثل شما برا مملکت سرمایه های بزرگی هستید...با تشکر...
     
    نوشته شده توسط ++Hadi++ در ‏7 ژانویه 2013
    mohammad.sub7 و yaa110 از این پست تشکر کرده اند.
  6. yaa110

    yaa110 کاربر فعال

    ارسال‌ها:
    206
    تشکر شده:
    507
    امتیاز دستاورد:
    16
    هادی جان لطف دارید، دو تا مثل بنده برای نابودیه یه مملکت کافیه :shock:
     
    نوشته شده توسط yaa110 در ‏7 ژانویه 2013
    mohammad.sub7، ++Hadi++ و akherat از این ارسال تشکر کرده اند.
  7. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,801
    امتیاز دستاورد:
    36
    دو تا مثل شما برا نجات مملکت از نابودی کافیه...
     
    نوشته شده توسط ++Hadi++ در ‏7 ژانویه 2013
    mohammad.sub7 و yaa110 از این پست تشکر کرده اند.
  8. FLV

    FLV Member

    ارسال‌ها:
    35
    تشکر شده:
    26
    امتیاز دستاورد:
    6
    منم دنبال این قضیه هستم اما میدونم کلاس updater در پکیج flash.desktop قرار داره.
     
    نوشته شده توسط FLV در ‏10 ژانویه 2013
    yaa110 از این پست تشکر کرده است.

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