یک سئوال از RemoveChildAt

splinter cell

Well-Known Member
با سلام به اساتید فلش
حقیقتش از موقعی که با as3 شروع به کار کردم بیشترین کمک و راهنمای من همین تالار و مثالها و مقالاتی هست که دوستان زحمتش رو کشیدن که از همه شون تشکر میکنم.و مشکلاتم رو به همین طریق خودم برطرف میکردم اما این یکی رو هرچی کلنجار رفتم نتونستم.
من یک نمونه پیوست کردم که اگر نگاه کنید متوجه میشین.چند بار دکمه ها رو بزنید!
با زدن یک دکمه چند تا مووی کلیپ به تعداد رندوم تولید میشن و بعد قراره با زدن یک دکمه دیگه اونها رو حذف کنیم. من اومدم برای اینکه حذفشون آسونتر باشه اونها رو فرزندان یک مووی کلیپ بزرگتر گرفتم(سئوال :این روش درست هست یا راه بهتری هم وجود داره؟)
container.addChild(ball
حالا وقتی دکمه حذف رو میزنم این کانتینر و اشیای داخلش حذف میشه ولی بعداً که دکمه استارت رو میزنم که دوباره چند تا ball تولید بشه همه ی قبلی ها که حذف شده بودند هم ظاهر میشن :-(
یک مثال از آقا هادی دیده بودم که اشیا رو از stage حذف میکرد .اما سطح(ایندکس) اشیا من معلوم نیست که کجا باشه؟ چون شاید بعداً هم چند تایی زلم زیمبو :) بهش اضافه کردم . لطفاً بگین مشکل مثال کجاست و اصلاً این روشی که رفتم اصولی هست یا نه؟
قربون همه دوستان
 

پیوست ها

  • removeChildAt.rar
    9.4 کیلوبایت · بازدیدها: 14

mohammadfard

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

دوست من وقتی که شما یک مووی رو removeChild می کنی شاید به صورت ظاهری حذف شود اما در باطن هنوز اشیای داخلی و خودش داخل Ram هستند شما بعد از removeChild حتما باید reference رو null کنی .

و اگر هم نخوای اونو null کنی در تابع Reset با یک حلقه for به انداره numChildren اون مووی بیای و removeChild کنی . (مووی های داخلی مووی کلیپ مادر )
من فایل رو واسط به روش اول درست کردم و برات گذاشتم
به خط 4 ، 9 و 30 نگاه کن

در تابع Reset که میام و اون رو null می کنم . (این از این تا اینجا مشکلی نیست )

اما وقتی که دوباره تابع start رو فراخونی می کنم چون قبلا اون رو null کردم پس حتما دوباره باید یک instance بسازم این کار رو در خط 9 انجام دادم (امیدوارم منظورمو فهمیده باشی )


یا علی
 

پیوست ها

  • removeChildAt.rar
    9.5 کیلوبایت · بازدیدها: 22

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

بالا