وقتی موس روی شی قرار گرفت سپس بلور

sport414

Active Member
با سلام خدمت دوستان عزیز
برای ایجاد جلوه در برنامه خواستم وقتی موس روی شی رفت (مثلا یک فیلد) روی آن افکتی مانند بلور شکل بگیرد ، تا اینجا کار خوب پیش رفت ولی می خواستم وقتی موس کنار رفت فیلد به حالت اول برگردد ، در این قسمت با مشکل مواجه شدم لطفا راهنمایی بفرمایید .
کدهایی که استفاده کردم برای حالت اول :
on mouseWithin me
cursor 280
mysprite=sprite(me.spritenum)
MyFilter = filter(#blurfilter, [ #BlurX:2, #BlurY:2, #quality:5])
sprite(mysprite).filterlist.append(MyFilter)
updatestage

end

برای کنار رفتن موس فرضیه های من : 1- شاید لازم باشد فیلتر را برای این فیلد خاموش کنیم 2- یک کست ممبر به جای قبلی جایگزین کنیم.
اما برای کنار رفتن موس ؟
on mouseLeave me
cursor -1
؟
؟
؟
end
با تشکر
 
با سلام

اسکریپت شما را یک تغییر جزئی دادم و برای مشکلتون هم اسکریپت نوشتم

on mouseenter me
cursor 280
mysprite=sprite(me.spritenum)
MyFilter = filter(#blurfilter, [ #BlurX:2, #BlurY:2, #quality:5])
sprite(mysprite).filterlist.append(MyFilter)
updatestage
end

on mouseleave me
removefilter me

end

on mouseup me
removefilter me
end

on on mouseUpOutside me
removefilter me
end

on removefilter me
cursor 0
mysprite=sprite(me.spritenum)
sprite(mysprite).filterlist.deleteall()
updatestage
end

توضیح : شما از دستور mousewithin استفاده کرده بودید که من بجاش دستور mouseenter گذاشتم این دو دستور رویداد رفتن اشاره گر برروی اسپرایت است اما فرقی که دارند این است که دستور mousewhithin مانند یک حلقه کار می کند تا زمانی که اشاره گر روی اسپرایت باشد افکت شما روی اسپرایت تکرار می شود یعنی ممکن است اسپرایت 1000 بار یا بیشتر تا ظرفیت سیستم بلور شود که به سیستم کاربر فشار اضافه می آورد و باعث پردازش بیشتر می گردد.

اما رویداد mouseenter هنگامی که اشاره گر روی اسپرایت رفت فقط و فقط یک بار اجرا می شود بدین ترتیب اسپرایت شما فقط یک افکت بلور می گیرد.

بقیه دستورات به نظرم واضح می باشد.

موفق باشید
 

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

بالا