![]() |
Не работает setInterval () в классе
Здравствуйте! Написал игрушку, но она малость подтормаживает - использовал много onEnterFrame (). Хочу все переделать на setInterval (). И вот тут то застрял. Вобщем вот классы:
Код:
class Enemy {Код:
class LevelOne{ |
интересные грабли :
получается, что в createEnemy ты пересоздаешь свойство enemy = new Enemy(_mc);, что при этом происходит с ранее созданными объектами не вполне понятно.., видимо они уходят в небытие.. если создавать новые без привязки к enemy, то все работает Код:
private function createEnemy ():Void {или по другому: если оставить LevelOne как есть, а в конструкторе Enemy сохранять ссылку на созданный объект (в статическом массиве, например), то тоже все работает |
Цитата:
|
ага, не выйдет: follow не вызывается.., точнее вызывается только для последнего созданного объекта..
так думаю: в setInterval (this, "follow", 100); this - это scope вызываемой функции, а поскольку this всех создаваемых объектов в результате смотрят на один и тот же enemy экземпляра LevelOne, то и имеем этот бардак.. |
В целом автор ошибся, ему нужно завести массив в котором хранить созданных Enemy, а не создавать свойство для одного.
|
Гм... А почему же, если использовать onEnterFrame (), то все отлично работает???
P.S.: а вообще я очень польщен - мне помогают два флэш-монстра. Спасибо. |
Потому, что onEnterFrame вешается на мувиклип.
|
Понятно. Еще вопрос, если позволите: можно именам экземпляра давать имена по типу задания имен клипам
Код:
this["mc"+i]Код:
var this["inst"+i]:ClassA = new ClassA (); |
Для динамических имен нельзя использовать ни var, ни типизацию.
Я выше писал о массиве, в который помещается ссылки на создаваемые экземпляры, поэтому конструкции типа this["inst"+i] в классах не нужны, а нужно лишь обратиться к элементу массива. В таком классе Код:
class A { |
Цитата:
Спасибо, iNils, что так подробно объяснил. |
| Часовой пояс GMT +4, время: 12:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.