Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   как зарегать в классе инстанс мувика (http://www.flasher.ru/forum/showthread.php?t=68720)

Gaen 03.09.2005 19:38

как зарегать в классе инстанс мувика
 
решил-таки перейти на As 2.0 и ооп заодно... возникли непонятки [сабж]

ffffff 03.09.2005 22:08

что ты имеешь ввиду под "зарегать инстанс мувика"?

artcraft 04.09.2005 00:25

1. создаём rect.as:
Код:

//rect.as
class rect extends MovieClip {
function rect() {
        this.beginFill(0xFF0000, 100);
        this.moveTo(0, 0);
        this.lineTo(100, 0);
        this.lineTo(100, 100);
        this.lineTo(0, 100);
        this.lineTo(0, 0);
        this.endFill();
}
}

2.
вставляем новый символ
называем его rect
ставим галку Export fot ActionScript
в поле Identifer: пишем rect
в поле AS 2.0 Class: пишем rect

3.
в первом кадре пишем:
Код:

_root.attachMovie("rect","rect1",0);
получаем красный квадрат

внимание вопрос:
как скриптом создать мувик класса rect (не аттачем, пропустив 2-ой шаг)

Gaen 04.09.2005 00:59

я как раз именно это и имел ввиду - без аттача... но если прописать класс, то мувик, который уже на сцене, вроде тоже должен принадлежать к этому классу...

artcraft 04.09.2005 01:35

Цитата:

Сообщение от GAIKER
я как раз именно это и имел ввиду - без аттача... но если прописать класс, то мувик, который уже на сцене, вроде тоже должен принадлежать к этому классу...

нет поумолчанию все новые мувики связаны с классом MovieClip
прочесал весь хелп, но не нашёл как скриптом привязать другой класс :~/
есть Object.registerClass(), но для этого символ должен лежать в библиотеке т.е. должен быть создан руками,
а хочется скриптом !!!

:~/

ffffff 04.09.2005 09:35

Цитата:

Сообщение от artcraft
нет поумолчанию все новые мувики связаны с классом MovieClip
прочесал весь хелп, но не нашёл как скриптом привязать другой класс :~/
есть Object.registerClass(), но для этого символ должен лежать в библиотеке т.е. должен быть создан руками,
а хочется скриптом !!!

:~/


это очень плохо... возможно если надо сразу и класс и объект, то надо компонент создавать?

7thsky™ 04.09.2005 12:28

Старым проверенным способом

Код:

var t:Object = MovieClip.prototype;
t.applyClass = function (ClassConstructor:Function):Boolean {
        //check
        if (typeof ClassConstructor != 'function') {
                return false;
        } // end if

        this.__proto__ = ClassConstructor.prototype;
        this.constructor = ClassConstructor;
        this.constructor.apply (this);
        return Boolean (ClassConstructor (this));
}

// использование
some_mc.applyClass (Your_Super_Class_extends_MovieClip);


artcraft 04.09.2005 17:02

7thsky™, огромное cпасибо,

PS: так тоже работает:
Код:

mc=_root.createEmptyMovieClip("r1",1);
mc.__proto__ = rect.prototype;
mc.constructor = rect;
mc.constructor();



Часовой пояс GMT +4, время: 21:29.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.