واضح آرشیو وب فارسی:سایت ریسک: حفظ مقادیر یک متغیر rostam 03 اسفند 1387, 17:20با سلام اگر فرش کنیم که یک موی کلیپ داشته باشیم که در 20 فریم اجرا میشود و در فریم 20 مجددا به فریم یک goto میکند و در فریم یک، یک متغیر ععدی تعریف شده که میخواهم هر بارکه دوباره به فریم یک برمیگردد مقدار آن یک واحد افزایش یابد .اما با رسیدن به فریم اول دوباره مقداره اولیه خود فلش که فکر کنم 0 است میگره .باید چی کار کنم ؟ که مقدارش به حالت اول بر نگرده ؟ متشکرم د BioDread 03 اسفند 1387, 17:51ان متغیر رو در root درست کن و در فرم اول ان مووی بنویس برای as2 _root.myvalu++ sizanjavad 07 اسفند 1387, 10:30براي as2 هم مي توني متغير رو به صورت سراسري تعريف كني كه در طول كل برنامه بهش دسترسي داشته باشي. مثلا _global.intro=0; kiarash.M 09 اسفند 1387, 11:05اگر میخواهی خودت رو درگیره سطح دسترسی متغیر ها کنی !! مقادیرت رو بریز تو یه textfiled که visiblity ایش false باشه .. اون با آدرس دهی دقیق همجای کارت بهش دسترسی داری ! و در همه زبان ها با ++my_var یا my_var += 1 یا my_var = my_var+1 این اصول کد نویسی تو همه ی زبان هاست . ++Hadi++ 17 فروردين 1388, 14:58سلام تو as3 چطوری می شه متغیر global داشت کسی می دونه؟ من یه متغیر یا تابع می خوام تو یه فریمی تعریف کنم که تو as3 تو همه فریمها و مووی کلیپ های فایل سورس اونو بشناسیم و ازهمون استفاده کنیم. مثلا اونو تو یه مووی تعریف کنم و تو یه مووی دیگه کم و زیادش کنم. چطور می شه این کارو کرد؟ sizanjavad 17 فروردين 1388, 17:14براي اين كار شما ابتدا يه كلاس با يه كانتاينر استاتيك مي سازين. تو مثال از نوع object تعريف كرديم كه بتونيم در موقع اجرا ، property بهش اضافه كنيم (از هر مقدار و هر نوعي) و اگه خواستيم اونا رو تغيير بديم. حالا اگه اينو نخواستين يه از نوع متغير معمولي تعريفش كنين. package a { public class GlobalVarContainer { public static var vars:Object = []; } } حالا شما در هر كلاسي كه بخواين ازش استفاده كنين اون رو به راحتي import و بقيه كارا رو روش انجام بدين. package { import flash.display.Sprite; import a.GlobalVarContainer; public class Main extends Sprite { public function Main() { GlobalVarContainer.vars.groupingID = 1 GlobalVarContainer.vars.mediaID = 4 GlobalVarContainer.vars.facultyID = 5 GlobalVarContainer.vars.studentID = 2 } } } اين راه حل اصولي و شي گراش! براي as2 كارها هم به كلاس خيلي ساده كه بر پايه مثال بالا نوشته شده هست كه اتچ مي كنم (خودم ننوشتم ها!!!). با اين كلاس ديگه مي تونين در as3 هم مثل global در as2 كار كنين BioDread 17 فروردين 1388, 18:36دوست من دستت درد نکنه عجب روشی راستشو بخوای به مخ من نمیرسید که از کلاس برای ساختن متغییر گلوبال استفاده کنم این به دانشم از as3 اضافه شد! تشکر ++Hadi++ 17 فروردين 1388, 22:32آقا جواد گل دستت درد نکنه حقا استاد as3 هستی. یه مسئله ای هیچ راه دیگه ای غیر از مثالت وجود نداره مثل اکشن 2 راحت و بدون استفاده از کلاس و اینهمه دغدغه این کارو بکنی؟ یه چیز دیگه !! نه دو چیز دیگه : sprite چه کلاسیه ؟ همچنین globalvars تو قسمت import حتما لازمه ؟ چون اسم بسته a هست و اسم کلاس GlobalVarContainer . آیا عنوان globalVars چیزی هست که به متغیر global دلالت می کنه و تو مثالهای اینجوری باید اعمال شه ؟ sizanjavad 18 فروردين 1388, 09:12یه مسئله ای هیچ راه دیگه ای غیر از مثالت وجود نداره مثل اکشن 2 راحت و بدون استفاده از کلاس و اینهمه دغدغه این کارو بکنی؟ as3 كاملا بر پايه اصول شي گرايي وكلاس ها كار مي كنه و شايد اولش سخت باشه ولي بعد از يه مدتي آدم مي فهمه كه واقعا كارش راحت تر از قبل شده. شايد راه ديگه اي داشته باشه كه من نمي دونم. در ضمن فايل اتچ دستور معادل as2 رو شبيه سازي كرده ديگه فقط شما يه كلاس اضافه مي كني sprite چه کلاسیه ؟ من بهش مي گم باباي movieclip. چون movieclip از اين كلاس به ارث مي بره. به بيان ساده همون موي كليپ ولي بدون تايم لاين!! ما تو خيلي از كداي اكشن اسكريپت از موي كليپ هاي تك فريمي استفاده مي كنيم. تو as3 اين كلاس تهيه شده به همين منظور كه شما ديگه براي مووي كليپ هاي تك فريمي از اين كلاس استفاده كني. همچنین globalvars تو قسمت import حتما لازمه ؟ در اين مورد ببخشين من سوتي دانم. چون اين يه تيكه از يه مثال كلي بوده كه من براي اين سوال شما خوردش كردم. اصلاحش كردم ++Hadi++ 18 فروردين 1388, 14:43جواد جان لطف کردی خیلی خیلی ممنون... نه من با کلاسیک بودن مشکلی ندارم . من خودم برنامه نویس net. هستم و رشته ام نرم افزاره و از این قلم چیزا یه چیزایی حالیمه . در هر صورت ممنونتم. sizanjavad 18 فروردين 1388, 20:18نه من با کلاسیک بودن مشکلی ندارم . من خودم برنامه نویس net. هستم و رشته ام نرم افزاره و از این قلم چیزا یه چیزایی حالیمه . به خدا قصد جسارت نداشتم. من سعي مي كنم هر جا كه جواب مي دم حتي اگه طرفم حرفه اي هم باشه يه جوري جواب بدم كه اگه يه كاربر عادي هم بعدها با سرچ به اين تاپيك رسيد بتونه به نتيجه برسه ++Hadi++ 21 فروردين 1388, 01:39سلام آقا جواد آیا کلاس رو فقط می شه تو یه فایل as. نوشت یعنی تو خود فریم ها نمی شه نوشت . اگه جوابتون نه هست آیا می شه کلاس رو تو فریم import کرد و تو فریم مقدار دهی کرد ؟ یعنی تو یه فایل fla. که همخه چیز eventListener داره آیا می شه کلاسو import کرد و به متغیر سراسری دسترسی داشت و اونو عوض کرد ؟ بعد وقتی کلاسو تو as. نوشتیم چه راهی هست که سه مجموعه فایل as. رو که تو یه فولدر قرار گرفتن رو تو فایل فلش مدیریت کنیم تا همه import شن .من شنیده بودم تو قسمت publish settin و قسمت actionscript setting می شه فولدری رو که توش پر از فایل های کلاس خارجی هست رو آدرس بدیم تا همه import شن. ++Hadi++ 22 فروردين 1388, 10:59می شه بهم جواب بدین لطفا... اگه تک تک هم جواب بدین می شه ... sizanjavad 22 فروردين 1388, 12:35سلام آقا جواد عليك سلام:) آیا کلاس رو فقط می شه تو یه فایل as. نوشت یعنی تو خود فریم ها نمی شه نوشت . نه نمي شه . فقط در يه فايل external با پسوند as و حتما داخل package آیا می شه کلاس رو تو فریم import کرد و تو فریم مقدار دهی کرد ؟ ما وقتي كه تو doucumentclass در قسمت property كلاسي تعريف مي كنيم مي تونيم مقدار دهيش كنيم و از روش شي بسازيم و برا constructor اش مقدار بفرستيم. در ضمن مي توني تو فريم هم import كني. حتي با دستور معروف include هم مي توني كلاس رو به پروژت اضافه كني وقتی کلاسو تو as. نوشتیم چه راهی هست که سه مجموعه فایل as. رو که تو یه فولدر قرار گرفتن رو تو فایل فلش مدیریت کنیم تا همه import شن .من شنیده بودم تو قسمت publish settin و قسمت actionscript setting می شه فولدری رو که توش پر از فایل های کلاس خارجی هست رو آدرس بدیم تا همه import شن. يه راهش اينه كه يه كلاس رو به عنوان Public تو پروژه اضافه كني و تو اون كلاس بقيه كلاسا رو import كني. البته اگه كلاسا رو خودت نوشته باشي و از هم ارث ببرن!!! راه خودتم كه درسته ديگه!!!
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 1180]