واضح آرشیو وب فارسی:سایت ریسک: اشاره از يک موي کليپ به يک موي کليپ ديگه simorghgroup 07 مرداد 1389, 10:03با سلام دوستان من دارم تازه ActionScript 3 رو ياد ميگيرم . اگه سوالم بچه گونه است به بزرگي خودتون ببخشيد . هدف من از اين سوال آشنايي با This و parent مي باشد . من داخل Stage ام دو موي کليپ دارم يکي با نام A وديگري با نام B . حال داخل هر موي کليپ به طور مشترک يک موي کليپ ديگه به نام هاي S2 و جود داره که داخل S2 هم يک موي کليپ ديگه به نام S1 هستش . حال داخل موي کليپ S2 در داخل A يک Function تعريف کردم که مي خوام اين تابع موقعيت موي کليپ B رو که در root هست رو تغيير بدم و با يک تابع ديگه اندازه اون موي کليپ رو تغيير بدم . توشجه داشته باشيد که من داخل A.S2 اين کد رو دارم مي نويسم و مي خوام تغييرات روي B که تو Scean اصلي هست صورت پذيرد . من فقط نميدونم چه جوري بايد به يک موي کليپ ديگه داخل صفحه اصلي اشاره کنم . من اين کد رو نوشتم خطا ميده : this.parent.B ارور داد !!!!!!!! :sad: با تشکر . Mr. LonelY 07 مرداد 1389, 17:07ببین دوست عزیز منم ی موقع همین مشکل رو داشتم یکی از خاصیت های as3 اینه کد هاتو یک جا و توی یک فریم بنویسی! شما باید کد هاتو جوری بنویسی ک از بیرون (stage) روی آبجک هایی ک تو مووی کلیپ های دیگه هست مدیریت کنی! برای مثال شما فرض کن ما بخوایم برای S1 ی listener تعریف کنیم باید بنویسیم A.S2.S1.addEventListener امیدوارم متوجه شده باشی!! simorghgroup 07 مرداد 1389, 17:17سلام دوست عزيز ممنون از توجه تون به اين پست . و همچنين از جوابتون هم متشکرم . اين کدي که فرموديد A.S2.S1.addEventListener براي ورود به موي کليپ A و سپس S2 و سپس S1 هستش . ولي من الان داخل موي کليپ S2 هستم و در فريم 1 اين موي کليپ تابعي مي خواهم بنويسم که به موي کليپ ديگري که در Stage کنار موي کليپ A هست اشاره کنم و اندازه اون رو توسط تابع تغيير بدم . باز هم ممنون منتظر جواب دوستان هستم . ++Hadi++ 07 مرداد 1389, 18:26سلام بهتره تمام توابع و دستورات در یه جا نوشته بشه ولی اگه می خواهین از درون مووی کلیپ A ، و در داخل مووی کلیپ S2 این کد رو بنویسین باید بنویسین : MovieClip(this.parent.parent.B).x=10; یعنی اومدیم دوبار به سمت بیرون و به سمت شاخه روت رفتیم و بعد به B رسیدیم و اونو صدا زدیم . حالا فرض کن داخل : A و B هر کدوم یه مووی کلیپ به اسم های S2 و داخل S2 هم یه مووی کلیپ به اسم S1 هست . من سخت ترین حالت رو می گم . فرض کن هر دو مووی کلیپ A و B در شاخه روت و در تایم لاین اصلیتند . پس اگه بخوای از مووی کلیپ S1 واقع در A.S2 به مووی کلیپ S1 در مووی کلیپ B.S2 دست پیدا کنی ، داخل S1 واقع در A.S2 می نویسی : MovieClip(this.parent.parent.B.S2.S1).x=10; دو تا نکته » 1- با نوشتن x=10 خواستم یه مثال از دسترسی رو بهت بگم و شما می تونی هر پارامتر دیگه اونو تغییر بدی . 2- منظور ما از S1 و S2 و A و B ، اسم instanceName هست یعنی همونی که بعد از انتخاب مووی کلیپ در پنل properties و در این کادر می نویسین ، یه وقت اشتباه متوجه نشین ، منظور ما اسم اصلی سمبل مادر مووی کلیپ در Library نیست ... موفق باشین ... simorghgroup 07 مرداد 1389, 19:00آقا هادي ممنون از راهنماييتون. من تمام اصول رو رعايت کردم ولي اين ارور را مي ده . 1119: Access of possibly undefined property B through a reference with static type flash.display:DisplayObjectContainer. من فقط اين نکته رو بگم که کدم رو تو S2 نوشتم بنابراين يک Parent گذاشتم . اصلا فايل Fla رو ضميمه موضوع کردم ، خودتون ببينيد . با تشکر ++Hadi++ 07 مرداد 1389, 20:18اشکال شما از اون تابع درونی بود و باید می نوشتین : function daire (w:Number,h:Number):void { MovieClip(this.parent.parent).BB.x=w-MovieClip(this.parent.parent).BB.width; MovieClip(this.parent.parent).BB.y=h-MovieClip(this.parent.parent).BB.height; } البته من اسم مووی کلیپ A رو به AA و B رو به BB تبدیل کردم چون اونا رو آبی نشون می داد و یعنی اینکه جزء کلمات کلیدی بودند . شما به جای اینکه دوبار عبارت parent رو بنویسین ، 1 بار نوشته بودین و به جای اینکه به root برسه ، به داخل AA می رسید و می دید که هیچ BB وجود نداره ...در مورد کوتاه نویسی هم خودتون فایلو با cs5 باز کنین و اسکریپتی که در root هست رو ببینین ، من توضیحات کامل دادم ... موفق باشین ... simorghgroup 07 مرداد 1389, 20:59آقا هادي از پاسخ گويي شما بسيار متشکرم . انشاء الله خير ببيني :rose: Mr. LonelY 08 مرداد 1389, 13:42ایول!!! سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 577]