تور لحظه آخری
امروز : چهارشنبه ، 23 آبان 1403    احادیث و روایات:  امام علی (ع):انسان زيرك، دوستش حق است و دشمنش باطل.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

تشریفات روناک

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

لوله بازکنی تهران

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

بازسازی ساختمان

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

قیمت سرور dl380 g10

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

اوزمپیک چیست

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

نگهداری از سالمند شبانه روزی در منزل

بی متال زیمنس

ساختمان پزشکان

ویزای چک

محصولات فوراور

خرید سرور اچ پی ماهان شبکه

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

 






آمار وبسایت

 تعداد کل بازدیدها : 1828710651




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

چطوري ميشه واسه motion كد نوشت؟؟ -


واضح آرشیو وب فارسی:سایت ریسک: چطوري ميشه واسه motion كد نوشت؟؟ sahar_ss13 15 بهمن 1384, 12:36با سلام من يه كد نوشتم كه يه دايره رو با يه For از يه مختصات منتقل ميكنه به يه مختصات ديگه فقط ميخواستم توي هر بار اجرا شدن داخل For يه فقطه بندازم يعني يه چيزي مثل Delay توي C يا Pascal كه دايره يواش منتقل بشه نه يكباره و در ضمن ميخواستم ببينم Ease رو چطوري ميشه كنترل كرد يعني توي For از يك تا صد برو با اين سرعت و با ease مثلا 100 ؟؟؟؟؟؟؟؟؟؟؟//// ممنون ميشم اگه كسي راهنماييم كنه Security9776 15 بهمن 1384, 14:58سلام ، شما می تونید از یک فانکشن استفاده کنید که این عملیات رو انجام بده و بعد یک اینتروال برای اون با فاصله زمانی مورد نظرتون ایجاد کنید . اگه مشکلی بود بگید تا کمکتون کنم . موفق و سربلند باشید phoenix 15 بهمن 1384, 20:28ActionScript یک زبان MultiThreded تحت کنترل برنامه نویس نیست که مانند C یا Java از وقفه های درون برنامه پشتیبانی کنه، این بدین معنی است که کلیه خطوط برنامه در یک فرم، متد یا کلاس پشت سر هم و بدون وقفه اجرا خواهند شد و حلقه for نمی تواند کمکی به ایجاد انیمیشن نماید، زیرا انیمیشن ها در واقع برنامه هایی هستند که با delay متناسب با frame rate مورد نظر اجرا می شوند ولی از طرف دیگر ActionScript یک زبان کاملا شیئ گراست با قابلیت پشتیبانی از Event ها بنابراین می توان کنترل برنامه هایی که نیاز به وقفه دارند را با استفاده از Event ها در دست گرفت. ایجاد برنامه هایی برای motion کار ساده ای نیست یعنی اصلا کار ساده ای نیست بخصوص وقتی که معادلات easing هم همراه انیمیشن باشه. این کار تقریبا در AS1 غیر ممکنه. من قبلا کلاسهایی برای ایجاد motion برای کلیه property های اشیا در فلش مانند x_ یا alpha_ یا xScale_ و ... با قابلیت پشتیبانی از انواع معادلات easing در AS2 نوشتم. البته core برنامه از package mx برداشت شده با تغییراتی در event model و timing در حال حاضر فرصت ندارم، اما در صورتی که مایل یاشید میتونم طی روزهای آینده برنامه ها رو با خلاصه ای از API در اینجا قرار بدم sahar_ss13 16 بهمن 1384, 08:40Security9776 جان من اصلا اين چيزايي كه گفتين بلد نيستم اگه ميشه يه مثالي يه توضيحي بدين ممنون ميشم overcrash 16 بهمن 1384, 10:31میتونی خیلی راحت از دو قابلیت زیر درکنار هم استفاده کنی: 1. فاصله زمانی بین فریمها 2. gotoFrame (فکر کنم توضیحات کامل باشه فقط خلاقیت میخواد ) amir_s 16 بهمن 1384, 16:11ActionScript یک زبان MultiThreded تحت کنترل برنامه نویس نیست که مانند C یا Java از وقفه های درون برنامه پشتیبانی کنه، این بدین معنی است که کلیه خطوط برنامه در یک فرم، متد یا کلاس پشت سر هم و بدون وقفه اجرا خواهند شد و حلقه for نمی تواند کمکی به ایجاد انیمیشن نماید، زیرا انیمیشن ها در واقع برنامه هایی هستند که با delay متناسب با frame rate مورد نظر اجرا می شوند ولی از طرف دیگر ActionScript یک زبان کاملا شیئ گراست با قابلیت پشتیبانی از Event ها بنابراین می توان کنترل برنامه هایی که نیاز به وقفه دارند را با استفاده از Event ها در دست گرفت. ایجاد برنامه هایی برای motion کار ساده ای نیست یعنی اصلا کار ساده ای نیست بخصوص وقتی که معادلات easing هم همراه انیمیشن باشه. این کار تقریبا در AS1 غیر ممکنه. من قبلا کلاسهایی برای ایجاد motion برای کلیه property های اشیا در فلش مانند x_ یا alpha_ یا xScale_ و ... با قابلیت پشتیبانی از انواع معادلات easing در AS2 نوشتم. البته core برنامه از package mx برداشت شده با تغییراتی در event model و timing در حال حاضر فرصت ندارم، اما در صورتی که مایل یاشید میتونم طی روزهای آینده برنامه ها رو با خلاصه ای از API در اینجا قرار بدم ممنون کامیار جان ! ممنون میشم کلاسهایی رو که نوشتی به ما هم بدی ! phoenix 16 بهمن 1384, 16:34حتما امیر، ببخشید فقط فردا یا حداکثر 3 شنبه Security9776 18 بهمن 1384, 09:07سلام ، ببخشید که چند روزی نبودم . در مورد جواب شما ، شما باید از یک فانکشن استفاده کنی مانند زیر : function Motion() { YourMovie._x = YourMovie._x+1; YourMovie._y = YourMovie._y+1; } بعد وقتی خواستی که فانکشن شما عمل کنه دستور زیر رو باید اجرا کنی : Motion_I = setInterval(Motion,500); که در این جا 500 یعنی 500 میلی ثانیه یا نیم ثانیه . یعنی فانکشن شما که x و y مووی شما رو تغییر می دهد هر نیم ثانیه یک بار اجرا می شود . هر جا هم که خواستید این عملیات متوفق بشود از دستور زیر استفاده کنید : clearInterval(Motion_I); موفق و سربلند باشید ، محسن phoenix 18 بهمن 1384, 10:42در ضمیمه یک فایل zip قرار دارد که شامل یک مثال و کلاسهای tween می باشد. پس از extract کردن این فایل لازم است که فولدر classes به عنوان یکی از مراجع کلاسها برای فلش تعریف شود برای این کار ابتدا شاخه classes را در جایی بر هارد ذخیره کنید (مثلا c:flashclasses) سپس از منوی edit گزینه preferences را انتخاب کرده و در قسمت ActionScript روی دکمه ActionScript 2.0 Settings… کلیک کنید. احتمالا دو گزینه . و LocalData)/Classes)$ وجود خواهند داشت که نماینگر جستجو برای کلاسها در در خود شاخه ای که FLA وجود دارد و سپس در شاخه classes در جایی که نرم افزار فلش نصب شده است است. باید گزینه سومی را برای Classpath اضافه کنید که مثلا c:flashclasses خواهد بود، در این صورت فلش کلاسهای جدید را نیز در موقع compile خواهد شناخت. شاخه classes شامل یک package به نام es است که package اصلی برنامه های من می باشد (درجه open source بودن خونم زیاد شده!) در es که من اینجا قرار دادم شما تنها package ها و class هایی را می بینید که برای Tween لازم هستند. مثلا UI شامل کلاسهایی برای UserInterface مانند Timer به جای setInterval و package اصلی Tween به نام transitions که کلاس Tween در همین جا قرار دارد. یا مثلا events که شامل کلاسهای پایه برای هسته اصلی event model و برگرفته از DOM Event Model و متناسب با Event Delegation Pattern می باشد و تقریبا بنیان بسیاری از برنامه های دیگر است که در اینجا اصلا مجالی برای صحبت در مورد اون با توجه به گستردگی مبحث Event Delegation نیست. در هر حال چیزی که برای استفاده از کلاس Tween لازم است بسیار ساده تر از اینهاست: در برنامه های AS2 و یا حتی AS1 و در پروژه های بزرگ همواره بهتر است که از انیمیشن های visual و بر روی timeline در محیط فلش با توجه به عدم دسترسی برنامه نویس به آن و همچنین غیر قابل کنترل بودن آن اجتناب کرد. می توان به راحتی و با ایجاد یک object از نوع Tween کلیه انیمیشن های ساده را با قابلیت کنترل کامل برنامه نویس ایجاد نمود بدون اینکه نیاز به نوشتن کد اضافی برای برنامه نویس و یا نگرانی از انجام چگونگی Tween وجود داشته باشد. برای استفاده از Tween ابتدا باید کلاسها را در کلاسهای دیگر یا در فریمها یا کلا هر جایی که می خواهیم از آنها استفاده کنیم import کنیم: import es.UI.transitions.Tween; سپس یک object از نوع Tween ایجاد می کنیم و کلیه مشخصات یک Tween را در constructor قرار می دهیم: var XTween:Tween = new Tween(mc, "_x", 0, 200, 2, true, 60); اگر نگاهی به داخل برنامه es.UI.transitions.Tween بیندازید میبینید که Constructor کلاس Tween چندین پارامتر را برای ورودی قبول می کند: function Tween (obj:Object, prop:String, begin:Number, finish:Number, duration:Number, useSeconds:Boolean, fps:Number) obj: آدرس به MovieClip، Button و یا TextField در صفحه prop: مشخصه ای که می خواهیم Tween بر روی آن انجام شود مثل x_ یا xScale_ یا alpha_ و ... begin: نقطه ابتدایی مشخصه برای Tween finish: نقطه انتهایی مشخصه برای Tween duration: مدت زمانی که Tween به طول خواهد انجامید به ثانیه و یا تعداد فریم useSeconds: مشخصه Boolean برای مشخص کردن اینکه duration بر حسب ثانیه محاسبه شود یا تعداد فریم. در صورتی که true باشد بر حسب ثالیه محاسبه خواهد شد. fps: فریم ریت در Tween. لازم به ذکر است که فریم ریت Tween کاملا مستقل از frame rate در timeline می باشد و به صورت مجزا set می شود. در صورتی که این پارامتر وارد نشود frame rate از timeline اقتباس خواهد شد. بنابراین در مثال قبل XTween متولی ایجاد Tween برای مشخصه x_ از mc که یک MovieClip است و از مقدار 0 تا 200 در طول 2 ثانیه و با انیمیشن 60 فریم در ثانیه می باشد. ایجاد این Object به تنهایی موجب ایجاد Tween نمی شود تا اینکه برنامه نویس متد start از این object را اجرا کند: XTween.start(); در این هنگام Tween از ابتدا (0) تا انتها (200) در مدت 2 ثانیه Tween خواهد شد بدون اینکه نیازی به timeline و یا دستورات احمقانه gotoAndPlay یا gotoAndStop باشد لازم به ذکر است که در هنگام اجرای انیمیشن به دلخواه می توان متد stop را صدا زد که باعث توقف اجرای انیمیشن می شود: XTween.stop(); همونطور که قبلا قول دادم کلاس tween از معادلات ease هم پشتیبانی می کند برای این کار می توان قبل از start کردن Tween باید معادله ease را برای object وارد کرد. در es تعداد 5 عدد style کلی برای ease و در کل 18 عدد ease وجود دارد که می توان از آنها استفاده کرد. لازم است که کلاس easing قبلا import شده باشد: import es.UI.transitions.Tween; import es.UI.transitions.Easing; var XTween:Tween = new Tween(mc, "_x", 0, 200, 2, true, 60); XTween.ease = Easing.REGULAR_EASE_OUT; XTween.start(); باعث Tween با معادله Regular یا چیزی شبیه به easing خود فلش در timeline می شود. معادلات easing قابل استفاده عبارتند از: Easing.NONE_EASE_IN Easing.NONE_EASE_OUT Easing.NONE_EASE_INOUT Easing.BACK_EASE_IN Easing.BACK_EASE_OUT Easing.BACK_EASE_INOUT Easing.BOUNCE_EASE_IN Easing.BOUNCE_EASE_OUT Easing.BOUNCE_EASE_INOUT Easing.ELASTIC_EASE_IN Easing.ELASTIC_EASE_OUT Easing.ELASTIC_EASE_INOUT Easing.STRONG_EASE_IN Easing.STRONG_EASE_OUT Easing.STRONG_EASE_INOUT Easing.REGULAR_EASE_IN Easing.REGULAR_EASE_OUT Easing.REGULAR_EASE_INOUT لازم به ذکر است که هر کس در صورتی که مایل باشد می تواند معادله ease برای Tween جداگانه بنویسد. برای این کار باید کلاس نوشته شده از interface Ease مشتق شود و از کلاس EaseManager ارث ببرد در صورتی که به esUI ransitionseasing مراجعه شود نمونه های عملی مشخص است. در این صورت باید ease را به صورت دستی برای object ایجاد کرد: import es.UI.transitions.Tween; import es.UI.transitions.easing.Strong; var XTween:Tween = new Tween(mc, "_x", 0, 200, 2, true, 60); XTween.ease = new Strong(Tween.EASE_IN); XTween.start(); (در صورتی که کسی مایل بود اینجا را بیشتر توضیح میدم) چیزی که هنوز نگفتم Event Model برای Tween هست. کلاس Tween از Event Model تعریف شده در es.events.EventBroadcaster ارث بری دارد و شامل event های زیر می شود: onMotionLooped onMotionFinished onMotionChanged onMotionStarted onMotionStopped onMotionResumed سیستم تعریف کردن event برای Tween همان سیستم listener ها است که با آن آشنا هستید بنابراین در یک مثال استفاده از آنرا نشان میدهم: import es.UI.transitions.Tween; import es.UI.transitions.Easing; var _listener:Object = new Object(); var XTween:Tween = new Tween(mc, "_x", 0, 200, 2, true, 60); XTween.ease = Easing.REGULAR_EASE_OUT; XTween.addListener(_listener); _listener.onMotionStarted = function() { trace("Tween started!"); }; _listener.onMotionFinished = function() { trace("Tween finished!"); }; XTween.start(); نکته قابل توجه اینکه هر event در هنگام broadcast شدن یک information object از event اجرا شده را ارسال می کند که می توان در handler آن event به آن دسترسی داشت. در کلاس Tween این info object شامل property های زیر می شود: clip: نمایانگر MovieClip یا کلا شیئ که Tween بر روی آن انجام شده است. count: شمارنده ای برای نشان دادن شمارش ارسال شدن این event target: یک reference به Tween object یا object که Tween را اجرا می کند. type: نمایانگر نوع event ارسال شده info: اطلاعاتی در مورد event ارسال شده در مثال قبل: _listener.onMotionFinished = function(info) { trace("clip: " + info.clip); trace("target object: " + info.target); trace("event count: " + info.count); trace("event type: " + info.type); trace("info: " + info.info.level + ", " + info.info.code); }; دیگه واقعا خسته شدم، در مورد خلاصه API کلاس es.UI.transitions.Tween را ببنید اگر چیز خاصی بود جواب میدم فقط 3 مورد زیر: متد start همانطور که قبلا گفتم برای start کردن یک Tween بکار می رود متد stop برای stop کردن یک Tween در حال اجرا بکار می رود متد resume برای resume کردن یک Tween قبلا اجرا شده بکار می رود و بقیه API... در فایل ضمیمه یک مثال هم گذاشتم که فکر می کنم جالب باشه amir_s 18 بهمن 1384, 13:27حیفم اومد که فقط دکمه تشکر رو بزنم ! واقعا ممنون کامیار جان ! کامل تر از این نمیشد ! phoenix 18 بهمن 1384, 20:31خیلی لطف داری امیر: )




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 259]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن