تغییر و متغیر سراسری

hamidhp

Active Member
سلام چطور می توانیم تغییراتی را در تمام فریم ها اعمال کنیم و همچنین توسط کد در فایل fla تغییر ایجاد کنیم


مثلاً fullscreen را چک کند و در صورت فول نبودن فول کند

و همچنین توسط کد تمام TLF ها را Right to Left کنیم و این تغییر در fla نیز اعمال شود

و فونت همه متن ها را فقط با نوشتن کد در یکی از فریم ها اعمال کنیم !؟!
 

++Hadi++

Active Member
اگه یه متغیر سراسری می خوای که بتونی همه جا بهش دسترسی خواندنی و نوشتنی داشته باشی از آموزش های اکشن فصل چهارم رو دان کن . من در فصل نمی دونم 24 یا 25 آموزشش دادم . ولی برا چک کردن هر چیزی باید به صورت ران تایم با توابع Enter Frame یا Interval یا با گوش کردن به Event ها و دادن رویداد مناسب با DispatchEvent ، هر چی که دوس داشتی رو چک کنی .
 

hamidhp

Active Member
این کد را برای هر فریم باید وارد کنیم
من می خواهم فقط بکجا وارد کنم
 

++Hadi++

Active Member
می تونی یه کلاس بوجود بیاری و متغیر هاشو از نوع استاتیک تعریف کنی و یه متد استاتیک بنویسی و با پاس دادن مووی کلیپ به اون ، currentFrame اونو با این دستور البته نه با هندل کردن this که با هندل کردن اون مووی کلیپ ، 1 بار بنویسی و چند بار اونو صدا بزنی یا اینکه بیرون از اون مووی کلیپ و رو فریم هات ،یه تابع بنویسی که currentFrame رو بدست بیاره و کارهاشو انجام بده و فقط این تابع رو در هر جای لازم بیرون از اون مووی فقط صدا بزنی . بنویسی :
PHP:
myMC.currentFrame
 

armanbm

کاربر VIP
من دقیقا متوجه سوالتون نمیشم.
اما اگه طبق نام تاپیک میخواین متغیر سراسری تعیریف کنید، کافیه یک متغیر public در کلاس Main ( یا همون Document Class ) تعریف کنی. این متغیر در همه جای دنیات شناخته شده خواهد بود.

حالا اگه میخوای تو هر لحظه موضوع مورد نظرت رو بر رسی کنی، باید یک ENTER_FRAME تو همین کلاس بنویسی. و برای مثال توش بنویسی:
this.currentFrame

البته راهی که هادی جان هم میگن خیلی خوبه.
 

hamidhp

Active Member
اگر چندتا مثال fla بگذارید خیلی عالی می شود

منظور من این هست که مثلاً برای trace فریم مجبور نباشم در همه ی فریم ها کد trace(this.currentFrame); را وارد کنم
البته این را برای مثال گفتم
 

armanbm

کاربر VIP
بله حمید جان، طوری که من میگم هم نیازی به نوشتن دوباره ی کدت نیست.

توی AS3 شما میتونید یک داکیومنت کلاس برای فایل fla خودت تعریف کنی. این فایل یه فایل معمولی نوشته با پسوند .as هست. و کد هایی که توش مینویسی بجز سه چهار خطش؛ همونایی هست که برای فریم ها مینویسی.
تو شکل زیر میبینیم طرف یه کلاسی به نام externalLoader رو به عنوان داکیومنت کلاس خودش تعریف کرده.

[align=CENTER]
documentClass.jpg
[/align]

این یعنی یک فایل به نام externalLoader.as در کنار فایل fla هستش.

حالا اگه یک رویداد NENTER_FRAME تغریف کنی و تو تابعش بنویسی

trace(this.currentFrame);

میبینی که با حرکت کردن فیلمت به جلو، عددی که تو خروجی نوشته میشه هم بیشتر میشه.

حالا تو همینجا میتونی هر شرطی خواستی رو چک کنی. مثلا برخورد شی ها یا هرچی دوست داری.

برای ساخت یک کلاس اکشن اسکریپت یا همون فایل .as کافی همونجایی که فایل fla رو انتخاب میکردی، حالا ActionScript رو انتخاب کنی:

[align=CENTER]
3-150x150.jpg
[/align]

کد نویسی اینجوری یک دنیا بهتره!
لا اقل واسه من.

امیدوارم مفید واقع شده باشه.
یا حق
 

hamidhp

Active Member
اگر آپلود کنی خیلی عالی می شود چون من آشنایی ندارم
5007: An ActionScript file must have at least one externally visible definition.
 

armanbm

کاربر VIP
سلام. ببخشید دیر شد.
کد کلاست باید این باشه. تو کد زیر هرجا NewClass هست جاش اسم کلاس خودت رو بزار. در این مورد باید یکم مطالعه کنی تا قلقش دستت بیاد. یکم که کار کنی برات آسون میشه.

کد:
package  
{
	import flash.display.MovieClip;
	
	public class NewClass extends MovieClip
	{
		
		public function NewClass() 
		{
			//TYPE YOUR CODE HETER
		}
		//ADD FUNCTIONS HERE
	}

}
 

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

بالا