واضح آرشیو وب فارسی:سایت ریسک: دسترسی به متغیر در عمقی متفاوت leila_karimi 17 دي 1385, 15:53سلام خدمت دوستان محترم من می خوام بدونم آیا امکان داره که وقتی در شاخه root هستی بتونی به متغیری که در یک شاخه دیگر قرار دارد دسترسی داشته باشیم؟و بالعکس فرض کنید در فریم اصلی یک موی کلیپ تعریف کرده ایم و در timeLine این movieClip یک سری کد داریم و یکسری متغیر .حالا می خوام در کد داخل mc به مقادیر متغیر root دسترسی داشته باشم و یا بالعکس CMAX 18 دي 1385, 02:02بعضی سوالها ارزش یک تاپیک جداگانه رو داره و به صورت کلی تنها بعضی سوالها ارزش پاسخ دادن دارن بگذریم ... variable یا همون متغییر در فلش خیلی ساختار پیچیده و سخت گیرانه ای رو نداره و در هر جای Time line و در هر MC شما هر چی نوشتین با یه علامت مساوی و فلش به عنوان متغییر و یا Object در نظر می گیره اما نکته اینجاست که چطور به اینا دست رسی پیدا کنیم تعریف متغیر برای تعریف متغییر حتما از " var " کنید زمانی که متغییری بدون تعیین مقدار اولیه تعریف شود مقدار آن undefined خواهد بود و برای فلش این عبارت با "false" برابر است . var name; در صورتی که نوع data مشخص نشود در زمان Compile فلش سعی می کند از روی نوع data سمت راست نوع اطلاعات متغییر را حدس بزند . سعی کنید حتما نوع متغییر را همان ابتدا تعریف کنید var name:String="CMAX" در این صورت امکان استفاده از Hint یا code completion فلش خواهد بود و درصد اشتباه در برنامه نویسی رو پایین خواهد آورد . متغیر Local زمانی که شما متغییری رو در خود Time Line و در Root تعریف کنید این متغییر در هر کجای Time Line و در خود Root قابل دسترسی است و همینطور در داخل یک MC هم متغییری که در Time Line تعریف شده در داخل اون MC و با فراخوانی نامش قابل دست رسی ست اما در صورتی که بخواهید از یک MC تغییری را در Root فرا بخوانید و بلعکس باید نام Local را به Compiler فلش بدهیم دقیقا مثل زمانی کهبه MC های درون یک MC با دادن نام MC مادر و یا Local دسترسی پیدا می کنیم تعریق متغییر در Root var city:String ="Shiraz" فراخوانی از MC trace (_root.city) و یا تعریف درMC و فراخوانی از Root trace (MC.city) متغییر Global "global property_" خاصیتی است که شما به یک متغییر می دهید و امکان دستیابی به آن را در همه نقاط SWF خواهید داشت مثلا _global.Kent=true _global.Tea=_root.Coffee برای تعریف متغییر Global از عبارت var نباید استفاده کنید در صورت استفاده با Syntax error مواجه خواهید شد . این متغییر در هر جایی به همین صورت قابل دست رسی است مثلا در داخل یک MC if (_global.Kent) { trace("May Be Some Other Time"); } خاصیت global_ تنها برای متغیر نیست و برای تابع و Object و Array و غیره قابل استفاده است مثلا _global.getSeason = function(n:Number) { if (n == 8) { return ("Worst Season"); } else if (n>8) { return ("Lovely Season"); } else { return ("Busy Season"); } }; حالا اینجوری هرکجا که خواستید فراخوانی کنید trace (getSeason(8)) نکته : در صورت امکان از این خاصیت کم تر استفاده کنید و از همان تعرف Local استفاده کنید در صورتی که بتوانید خوب با متغییر ها کار کنید می تواید به راحتی بسیاری از مشکلات برنامه نویسی خودتون رو حل کنید فقط مهم اینه که تلاش کنید تا یاد بگیرید و بعد درست استفاده کنید و leila_karimi 19 دي 1385, 07:24بعضی سوالها ارزش یک تاپیک جداگانه رو داره و به صورت کلی تنها بعضی سوالها ارزش پاسخ دادن دارن بگذریم ... و منظورتونو نفهمیدم سوال هر چقدر هم که ساده باشه سواله ممنون از جوابتون CMAX 19 دي 1385, 11:40خوب شاید از نظر شما اینجور باشه اما به نظر من هر سوالی ارزش پاسخ دادن نداره و مطمئنا خیلی ها هم اینجوری فکر می کنند و اینجوری عمل می کنند و امیدوارم شما این قضیه رو بخاطر جنسیت و شخصیت طرف فرض نکرده باشید اگر چه بعضی ها حتی جنبه جواب دادن به سوالهاشون رو هم ندارن و تازه وقتی جواب دادی فقط میگن : اهان و خیلی ها هم راحت تر : آهان راست میگی خودم تو هلپ دیده بودم ... و الی الآخر بحث سر این قضیه است که سوالی که پرسیده شده درست گفته شده و یک موضوعی باشه که جای بحث داشته باشه و فقط همین که خیلی ها هنوز تو gotoandplay موندن و زحمت یک سرچ کوچولو رو هم به خودشون نی دن و کاش حداقل می دونستن چطور سوال کنند تا آخر سر که طرف متفاوت جواب داد طلبکار نشن . امیدوارم فقط به کسی بر نخوره ... No Pain , No Gain smmousazadeh 21 دي 1385, 10:00برای دسترسی به یک متغییر باید محل تعریف و جایی که اولین مقدار رو به آن میدهیم ( مثل root یا داخل یه movieclip ) یا همون مسیر متغییر رو بدونیم . مثلا root.a=1 root.myMC.a=1 بصورت پیش فرض متغییرها سراسری هستند و نوعشان (int یا string و....) در زمان اجرا مشخص میشود (از دید من ) برای موارد خاص نوع تعریف شود بهتر است
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 573]