ПредишенСледващото

Как да си направим пълно спиране () видеоклипове

Един ден се натъкнах на един проблем - трябва да се спре видеоклип преди да я сложите обратно в басейна. Това копеле не го усуквайте в нищото, а не яде ресурси. Въпреки това, методът на стоп () спира само времевата линия на филма клип, видеоклипът и всички деца, които да се охлади - продължават да се върти. Например, ако имате клип на "резервоар", който разполага с торсионни анимация песни, но в допълнение има клип на "човек в люка", която се размахва флаг. След метода на стоп (), за да спрете да следите на резервоара. Един човек, всичко маха и завиване, къдрене и маха. Резервоарът може вече да е отстранен, но досега той не е почистено garbadzh колектор - той вълни и вълни, на сто щамове и щамове. И ако сте внедрили резервоари басейн, стотици танкове в басейна и всеки човек къдрене и развяващи флаг ... Uzhos!

Как да си направим пълно спиране () видеоклипове

Ясно е, че ние трябва да направим метод, който йерархично работи около всичко това и да го спре (). В случай на резервоара, между другото, теоретично, ако имате архитектурен oopeshno код направи всичко, а след това, на теория, на резервоара е наясно с малкия човек и спирка трябва да бъде nonuniversal за всички клипове, както са въведени в резервоара за клас. Всъщност, може би е необходимо да се спре анимацията с изключение на човек допълнително забраните мозъка си навън (да се отърве от кванти или enterfreym, които са направили по-лошо). Мозъци също пия ресурси в нищото.

Въпреки това, има много места, където би било добре да има универсален метод, за да се спре плътно цялата анимация. Например, ако гледате на устройството не е свързано с логиката. Какъв вид на един художник да направи това, тъй като е удобно - не всички анимации в график и на пистата и да се провери. А йерархично. Тук е възможно да се спекулира за Графичен срещу MovieClip в FlashIDE, но това е отделен въпрос. Достатъчно е, че цялостната ситуация, когато композитен версия на мнение, но логиката не е свързан. Например, в една сложна система от анимирани менюта.

И тогава, най-накрая. Ние можем да направим универсална Utiliti статичен метод в някои клас MovieClipUtility който се използва, когато е необходимо да се здраво заключване на видеоклип. И можете да си добавите към класа MovieClip липсващ метод stopAll () (ай Adobe!). Аз правя това, така че - upgradeMovieClip метод янки в началото на конструктора на основния клас на играта. Това е всичко. Сега можете да дръпнете в клипове stopAll () метод.

Може ли някой да дойде по-удобно. Или критикуват.

Интересното е, че аз ще взема си касичка. Въпреки че се разшири MovieClip - не е добра идея, мисля. Възможно е да имате проблеми със съвместимостта в бъдещите версии на API.

Ами obzovu метод не stopAll и myStopAll, customStopAll или дори elmortemHardStopAll :) - ще избягат от конфликта точно.

1) След това не е за DisplayObject и DisplayObjectContainer. метод stopAll счита като параметър всяка DisplayObjectContainer. Но никога не съм се. Само ако имате мнение, че би било правилно, ако се сглобява художника (поставя Tracks, шаси и т.н.). И най-вероятно това ще бъде направено в FlashIDE. И от там стигаме до видеоклип. Също така, в този случай, методът може да тегли в и извън кадър IDE. Вярно е, че той ще трябва да работи само в компилацията.

2) Добре - нека да има TankMC - видеоклип от библиотеката. Там вътре художника в йерархията с помощта на знамето на видеоклип. Да предположим, че ви питам - имам обект игра Резервоар наследена от BaseObject, той се присъединява към REMOVED_FROM_STAGE и всичко това. След отстраняване displeylista резервоара ще направи спирка () му TankMC. А Mach флаг продължава. Това означава, че все още трябва да премине през йерархията TankMC и гасенето на спирката () за всеки, който се хваща. Или преминете на време, за да се движи и се придържа към всеки слушател, че REMOVED_FROM_STAGE калай.

Аз със сигурност не го изпитват, но мисля, че това е една изключително бърза работа, особено ако много предмети - и слушателя много. операции Heap разпределение на паметта (не мисля, че слушателят има басейни), поставете \ изтриете всичко ... това натъжава процесор.

В допълнение към режийните, мога да дам един пример. Да предположим, че имате самолет. Той лети-мухи и сяда на един самолетоносач. В кода, можете да го откачи от глобалната корен и закрепена към самолетоносача. Сега, някъде щях да плува самолетоносач - самолетът застана на площадката за кацане. Логично е? Логически. Вашият подход ще замръзне, когато removeChild всички анимацията на ВС. Не се нуждаем от него.

Свързани статии

Подкрепете проекта - споделете линка, благодаря!