رویداد mouse_out برای دکمه

شروع موضوع توسط rahnama66 ‏12 می 2010 در انجمن Action Script 3

  1. rahnama66

    rahnama66 New Member

    ارسال‌ها:
    13
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    سلام
    من یک مشکلی دارم:
    دکمه های عادی در فلش رویداد out ندارند. چصوری میشه واسشون تعریف کرد؟
    من یک movieclip ساختم و براش action نوشتم یعنی از listenerها استفاده کردم ولی نتونستم
    یک مثال ساده برای اینکه منطورم رو بفهمین:
    وقتی موس میره رو دکمه یواش یواش رنگش روشن بشه (یه movieclip)
    وقتی موس از روش میره کنار(out) دکمه یواش یواش رنگش تیره بشه (یه movieclip)
     
    نوشته شده توسط rahnama66 در ‏12 می 2010
  2. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    MOUSE_OUT رویدادی هست که وقتی موس در حالت عادی و بدون فشار دکمه ای خاص ، از روی شیئی خارج می شه اون اتفاق می افته .
    می تونی به داخل مووی کلیپی خاص بری و واسش فریم تعریف کنی مثلا فریم 1 استپشه و حالت عادیشه . فریم 2 به بعد حالت over اون هست و این حالت انیمیشنی تا مثلا فریم 10 ادامه داره . بعد در فرم 10 استپ شده . فغریم 11 به بعد هم مثلا حالت out اجرا می شه و بعد دوباره به فریم 1 بر می گرده (آخر آخرشو stop نذاشتی ) ..
    خوب در داخل این مووی کلیپ (دو بار کلیک روی این مووی کلیپ) یه لایه کلی باز می کنی و روی اولین فریمش (جوری که دستورات فریم های بعدی رو هم شامل بشه )
    یه shape دکمه ای درست می کنی و اونو select می کنی و F8 رو رو اون می زنی و پنجره convert to symbol ظاهر می شه و نوع MovieClip رو انتخاب می کنی و در داخل اون ، روی فریم های 2 و 10 و مثلا 20 در تایم لاین ، F6 رو می زنی تا به این فریم ها ، انیمیشن بدی ،
    می نویسی :
    PHP:

    this.buttonMode=true;
    this.addEventListener(MouseEvent.MOUSE_OVER,overfun);
    this.addEventListener(MouseEvent.MOUSE_OUT,outFun);
    function overFun(evt:MouseEvent):void
    {
       gotoAndPlay(2);
    }
    function outFun(evt:MouseEvent):void
    {
       gotoAndPlay(11);
    }
     
    پس وقتی دکمه شما (که Button نیست بلکه movieclip هست ) در حالت عادی هست ، در فریم اول استپ هست و وقتی به حالت over در اومد ، از فریم دومش پلی می شه تا مثلا به فرمی 10 برسه و استپ شه و وقتی out شد ، ، از فریم 11 به بعد پلی می شه و بر می گرده به اولین فریم .
    این دستورات به اکشن اسکریپت 3 هست و باید فایل از نوع اکشن 3 باز کنی .buttonMode هم حالت دست شدن موس رو دکمه تونو فعال می کنه .
    بای...
     
    نوشته شده توسط ++Hadi++ در ‏12 می 2010
    amjad164، aminislami و FlashBank از این ارسال تشکر کرده اند.
  3. rahnama66

    rahnama66 New Member

    ارسال‌ها:
    13
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    ممنون از راهنمایی شما
    کارهایی که گفتین انجام میدم بازم اگه سوالی داشتم می پرسم
     
    نوشته شده توسط rahnama66 در ‏12 می 2010
  4. rahnama66

    rahnama66 New Member

    ارسال‌ها:
    13
    تشکر شده:
    1
    امتیاز دستاورد:
    1
    [FONT=&quot]تا اونجایی که من فهمیدم و تونستم بنویسم برای هر دکمه باید جدا کد بنویسم و timeline شلوغ میشه
    [/FONT]
    راهی هست که یک movieclip بسازم و از آن استفاده کنم؟ من کدی که نوشتم و جواب نمیده میزارم شاید منظورم رو بفهمید:
    کد (Text):
    btn.addEventListener(MouseEvent.MOUSE_OVER,tabeh);
    btn.addEventListener(MouseEvent.MOUSE_OUT,tabeh1);
    var over:MovieClip = new asd();
    var out:MovieClip = new qwe();
    function tabeh (evt:MouseEvent):void{
        removeChild(out);
        addChild(over);
        over.x=btn.x;
        over.y=btn.y;
    }
    function tabeh1 (evt:MouseEvent):void{
        removeChild(over);
        addChild(out);
        out.x=btn.x;
        out.y=btn.y;

    }
     
    نوشته شده توسط rahnama66 در ‏12 می 2010
  5. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    عزیزم گفتم که باید دستوراتی رو که نوشتم رو داخل مووی کلیپ بنویسی یعنی فرض کن مووی دکمه رو به صحنه درگ کردی بعد دو بار روی مووی کلیپ کلیک می کنی و در درونش اون کد ها رو می نویسی . بعد دیگه نیازی به اضافه کاری نیست . شما با this داری به مووی کلیپی که در اون هستین اشاره می کنین . بعد شما اگه هزار تا هم مووی کلیپ در صحنه داشته باشین دیگه دستوراتتون رو که فقط 1 بار داخل مووی کلیپ اصلی نوشتین و اونو رو همشون اعمال کردین .
    بای...
     
    نوشته شده توسط ++Hadi++ در ‏13 می 2010
    hamidreza68504 از این پست تشکر کرده است.
  6. hamidreza68504

    hamidreza68504 Member

    ارسال‌ها:
    154
    تشکر شده:
    49
    امتیاز دستاورد:
    16
    پاسخ هادی جان بهترین راه حل بود .
    منم همین کارو میکنم
     
    نوشته شده توسط hamidreza68504 در ‏13 می 2010
    ++Hadi++ از این پست تشکر کرده است.
  7. hossein-senator

    hossein-senator Member

    ارسال‌ها:
    43
    تشکر شده:
    56
    امتیاز دستاورد:
    6
    این راه حل یه مشکل کوچیک داره و اونم اینه که اگه موس خیلی سریع روی دکمه رد بشه دکمه سرجاش قفل میکنه !
    من می خواستم اگه امکانش هست راهی به من نشون بدین که به دکمه بگه اگه موس اور شد در راستای تایم لاین پلی کنه و اگه موس اوت شد از همون فریمی که در اون قرار داره برخلاف جهت تایم لاین حرکت کنه تا به فریم 1 برشه.

    ممنون
     
    نوشته شده توسط hossein-senator در ‏28 جولای 2010
  8. ++Hadi++

    ++Hadi++ Active Member

    ارسال‌ها:
    3,529
    تشکر شده:
    5,802
    امتیاز دستاورد:
    36
    دستور برعکس شدن play در اکشن 3 این هست :
    PHP:

    addEventListener(Event.ENTER_FRAME,reverse);
    function reverse(evt:Event):void
    {
       if(MC.currentFrame!=1)
        {
          MC.preveFrame;
        }
        else
        {
          removeEventListener(Event.ENTER_FRAME,reverse);
        }
    }
     
    بای...
     
    نوشته شده توسط ++Hadi++ در ‏28 جولای 2010
    amjad164، porang76، aminislami و 3 نفر دیگر از این ارسال تشکر کرده اند.

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