سؤال

لدي movieclip التي تفريغ اثنين من movieclips الأخرى عند النقر فوقها. هذا البت يعمل بشكل جيد، ولكن يجب أن يزيل نفسه أيضا بعد هذا، والذي لا يعمل بشكل خاص. هنا رمزي، هل يمكن لشخص ما من فضلك قل لي ما أفعله خطأ:

close_button.onRelease = function() {
 background.unloadMovie();
 loading.unloadMovie();
 this.unloadMovie();
}

التحيات و TIA

// تعديل

هنا هو الرمز الذي أقوم بإنشاء Movieclips:

// load background, movieclip container (loading) and close button
var background:MovieClip = _root.attachMovie("mc_back","loading_background", 100000);
var loading:MovieClip = _root.createEmptyMovieClip("loading",_root.getNextHighestDepth());
var close_button:MovieClip = _root.attachMovie("close_button","close_button",_root.getNextHighestDepth());

حاولت:

this._parent.close_button.unloadMovie(); // it removed the whole _root movieclip, as _root is the parent

و

_parent.close_button.unloadMovie(); // did just nothing

كلاهما فشل.

هل كانت مفيدة؟

المحلول

في معالج الأحداث "this"سيشير إلى إغلاق_Button، وليس الفيلم الرئيسي. كل ما عليك فعله هو إما إعلان متغير يساوي this خارج زر إغلاق معالج Onrelease، أو حاول this.parent.unloadMovie() (على افتراض أن الوالد من زر إغلاق هو الفيلم الذي تحاول إزالته).

نصائح أخرى

لا يمكن ل Movieclip تفريغها لأنها لا تستطيع قراءة التعليمات البرمجية التي لا يوجد بها، لذلك لا تفريغ في المقام الأول.

يحاول

close_button.onRelease = function() {
    background.unloadMovie();
    loading.unloadMovie();

    this.removeMovieClip();  // This 'removes' the movie clip
                             // which is the closest to 'unload'

}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top