PDA

Просмотр полной версии : вопрос по AS2.0 "extends MovieClip"


vfedorov
17.04.2007, 21:40
Здравствуйте

Просматривая один чужой кусок кода я наткнулся на такую строку:

confirm = (Confirm)(target.attachMovie("ConfirmSymbol", "mcConfirm", target.getNextHighestDepth()));


при этом класс Confirm обьявлен как


class ProdSelector extends MovieClip implements Observer


Протроссеровав значение confirm я получил undefined

Но заменив на


confirm = target.attachMovie("ConfirmSymbol", "mcConfirm", target.getNextHighestDepth());


получил клип.

Вопрос: как мне нормальни инициализировать confirm как экземпляр Confirm?

Заранее спасибо

lowka
17.04.2007, 21:42
confirm = Confirm(target.attachMovie("ConfirmSymbol", "mcConfirm", target.getNextHighestDepth()));

BigDan
17.04.2007, 22:00
а как же ключевое слово new?
var confirm:Confirm = new Confirm(........)

etc
17.04.2007, 22:06
А ничего, что класс Confirm в строке
class ProdSelector extends MovieClip implements Observer
не присутствует? Где class Confirm extends MovieClip? Видимо, написавший это явно что-то упустил.

BigDan, бред.

CorC
18.04.2007, 10:03
confirm = (Confirm)// не обязательно, ведь в библиотеке у мувика АС2 класс задан

etc
18.04.2007, 11:55
CorC, что это? :D

Kikasso
18.04.2007, 12:46
Чужой был магом, не иначе. Это точно флеш?

vfedorov
18.04.2007, 22:08
Ответ нащёл сам



confirm = target.attachMovie("ConfirmSymbol", "mcConfirm", target.getNextHighestDepth());


уже сам по себе будет экземпляром класса Confirm. У меня все функции этого класса выполняются.

P.S. Такая нотация в проекте везде. Очень похоже на C++ приведание типов. Только кажется в AS такое не надо, т.к. язык не строготипизирован.

Поправьте меня, если ощибаюсь

etc
18.04.2007, 22:16
Строгая типизация на стадии компиляции.
Только вы нам, судя по всему, два разных куска кода показывали.

wvxvw
18.04.2007, 22:26
Первый вариант тоже, по-идее должен выполняться... Скобки, кроме всего остального говорят компайлеру, что нужно вычислить значение в них. Если значением является функция, кроме того, у этой функции (класса) есть описанный метод (а он, явно есть, раз она наследует метод от МувиКлиа), то все должно получиться =) Вот только если в классе Confirm attachMovie делает не то же самое, что она делает в MovieClip, тогда может получиться конфузно %)

------------------------ upd ------------------------

Вот, что странно, что класс объявлен не так, как он называется... зачем =/

vfedorov
19.04.2007, 16:10
Извините - я ощибся в первом посте. Там должно быть


class ProdSelector extends MovieClip implements Observer

vfedorov
19.04.2007, 16:11
тему можно закрывать

etc
19.04.2007, 17:10
А там так и есть.
Впроем, тема закрыта, ибо несколько бредовая.