![]() |
Присваивание одного метода многим объектам.
У меня есть класс:
Код:
class Car extends MovieClip {Код:
honda = attachMovie("honda", "honda"+_root.getNextHighestDepth(), _root.getNextHighestDepth());Всё работает, как надо, но а если я хочу сделать 20 мувиклипов honda и всем им присвоить honda.moveCar();. То единственный вариант это двадцать раз атачить honda,honda1,honda2 в ручную и каждому присваивать honda1.moveCar();,honda2.moveCar(); ? Или можно сделать как-то по короче ? :confused: |
А с помощью broadcastMessage() пробовали?
Цитата:
|
Идете в библиотеку, ищите там символ honda, и под полем где писали honda, пишите Car.
Сам класс модифицируете так: Код:
class Car extends MovieClip {1. С большой буквый пишут только названия классов интерфейсы, и методы и свойства с маленькой 2. В AS2 задавать дефолтный свойства можно только в конструкторе или методах. Ни в коем случаие не делайте этого при объявлении самих свойств. Иначе все будут иметь одинаковое значение. Это баг AS2. Вопрос: зачем задавать размер машине, при каждом вызове onEnterFrame? Теперь сам вызов Код:
for (var i:Number = 0; i < 20; i++) { |
iNils! При всем уважении, Вы забыли new:
Код:
var honda:Honda = Honda (this.attachMovie ("honda", "honda" + d, d)); |
Не забыл. Мувиклипы не создаются через new, это делает attachMovie. А то что я написал Honda, так это приведение типа для автокомплита.
|
Понял. Надо было мне с самого начала читать.
iNils! А с помощью broadcastMessage() можно организовать вызов метода moveCar всех клипов? Или это невозможно? |
Можно конечно, но схема более сложная получится. Если машине не двигается, то рассылка все равно будет идти, надо будет создавать флаг состояния, проверять его.
Не вижу смысла тут это использовать. |
Понял. Нецелесообразно.
|
Спасибо, работает.
Только вы наверное имели ввиду тут : Код:
for (var i:Number = 0; i < 20; i++) {И ещё вопрос, не могли бы сказать зачем эта строчка : var d:Number = +this.getNextHighestDepth (); Если вроде можно записать так: var honda:Honda = Honda (this.attachMovie ("honda", "honda" + _root.getNextHighestDepth(), _root.getNextHighestDepth()); |
Про runCar верно, писал в блокноте.
Про var d:Number, лучше один раз определить переменную, что нескольраз ее вычислять и код так легче читается. |
| Часовой пояс GMT +4, время: 23:16. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.