PDA

Просмотр полной версии : Сделать мувик НА ТАЙМЛАЙНЕ часть класса


chingachgoog
04.06.2007, 16:11
Есть мувик, УЖЕ НАХОДЯЩИЙСЯ на таймлайне.
Есть некий класс, например

function myClass(){
this.onPress=function(){
trace(this)
}
}


Как сделать мувик частью этого класса?
Вернее чтобы свойства и методы этого класса, стали частью ИМЕННО ЭТОГО мувика?

Если я бы создавал мувик программно, то все было бы просто:


myClass.prototype=new MovieClip()
Object.registerClass("s1", myClass)


где s1 - идентификатор В БИБЛИОТЕКЕ.
Но как сделать то же самое, если мувик на таймлайне и имеет имя s1?

(Интересует решение в AS1, AS2 - не предлагать :) )

BigDan
04.06.2007, 16:14
Интересует решение в AS1
AS1 разве ООП'ешный?

chingachgoog
04.06.2007, 16:24
Конечно. :)
AS2 компилируется в AS1 в конечной swf-ке

Мыкыта
04.06.2007, 16:26
если напишешь на AS2 и будешь компелить под AS1 то компилятор выдаст тебе ошибку....

chingachgoog
04.06.2007, 16:30
Естественно, портомучто СИНТАКСИС разный.
Но в конечном итоге (в swf) будет код как из-под AS1.

CrazyFlasher
04.06.2007, 16:41
AS2 - это псевдо ООП, т.к. на самом деле (как выше уже писали) после компиляции мы получаем AS1

iNils
04.06.2007, 17:27
AS1 и AS2 являются ООП-ными и совсем не псевдо.

etc
04.06.2007, 17:28
AS2 - это псевдо ООП, т.к. на самом деле (как выше уже писали) после компиляции мы получаем AS1

Почти AS1. И вовсе не псевдо. Что там выходит после компиляции вообще совершенно не должно волновать.

chingachgoog
04.06.2007, 17:31
Народ, отличия AS1 от AS2 можно посмотреть в других, специально созданных для этого, темах.
Кто-нибудь по существу вопроса ответить может?

etc
04.06.2007, 17:33
Ну тут можно копать в сторону __proto__ и прочих хаков…

CrazyFlasher
04.06.2007, 17:54
ок, переубедили =)

chingachgoog
04.06.2007, 18:01
Ну тут можно копать в сторону __proto__ и прочих хаков…

Точняк! Заработало!


function myClass(){
this.d=100
this.onPress=function(){
trace(this + " "+this.d)
}
}

s1.__proto__=new myClass()



где s1 - идентификатор мувика НА ТАЙМЛАЙНЕ (в библиотеке идентификатора вообще нет!)