Форум 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)
-   -   разборы c PROTOTYPE (http://www.flasher.ru/forum/showthread.php?t=68528)

processor 30.08.2005 02:27

разборы c PROTOTYPE
 
Хочу сделать наследника от TEXTFIELD.

[code=javascript]
proscroll.prototype=new TextField()

function proscroll (){
this._x=200
this._y=200
this._width=200
this._height=200
}
[/code]

типа вот так. Правильно ? А как его на экран то вывести ?

Iv 30.08.2005 03:23

что у тебя такое javascript?

- если флэш, то в общем правильно.
проблема действительно в том,
что тебе нужно делать отдельный метод типа create,
чтобы поиметь такое текстовое поле.

proscroll.prototype.__proto__ = TextField.prototype;
function proscroll() {
this._x = 200;
this._y = 200;
this._width = 200;
this._height = 200;
}

proscroll.create = function(thisObject, name, depth, initObject) {
thisObject.createTextField(name, depth, 0, 0, 10, 10);
var t_txt = thisObject[name]
t_txt.__proto__ = this.prototype;
for (var i in initObject) {
t_txt[i] = initObject[i];
}
this.call(t_txt);
return t_txt;
};

ставим на поле:
proscroll.create(_root, "my_txt", 0, {text:"hello world"});

St. Father 18.11.2005 15:55

Подниму трэд
 
чтобы не генерить кучу тем отпишу здесь, т.к. помойму фтему.
Код:

//типа класс
function ff ()
{
        trace ("ff");
}
//типа регистр класс для символа la
Object.registerClass ("la", ff);
// убиваем прототип обджекта из прото прототипа класса
ff.prototype.__proto__ = MovieClip.prototype;
//задаем онлоад функцию
ff.prototype.onLoad = function ()
{
        trace ("loaded");
};
// аттачим и вдим: ff +newline + loaded
_level0.attachMovie ("la", "ll", 0);
// видим только: nu?
id = setInterval (function ()
{
        _level0.ll.loadMovie ("test.swf");
        trace ("nu?");
}, 3000);

вот собссна... мож я чего забыл?
З.Ы.: тест.свф есть

Iv 18.11.2005 16:21

дык эта...
а что ты хочешь и что за test.swf и причем тут он?

St. Father 18.11.2005 16:33

хочу наследуемую ф-ю онЛоад (читать РАБОТАЮЩУЮ) для ряда клипов (необязательно из библиотеки)
а тест.свф чтобы проверить онлоад)))
З.Ы.: необязательно из библиотеки == если есть способ запихать программно созданные мувики в класс или по-другому заставить работать ф-ю онлоад для них (не трогая MovieClip.prototype ;) ) - буду только счастлифф

St. Father 18.11.2005 18:33

АХТУНГ!!! Помогите!!!

ffffff 18.11.2005 18:50

а чем тебе прототип не нравится?

MOHCTEP 18.11.2005 23:20

Вложений: 1
MovieClipLoader юзай. Штука классная. Тут пример у меня по другой маненько теме, но вроде похож по направлению. Посмотри...

KUZEN 19.11.2005 00:34

У тебя там fla пустышка ...

MOHCTEP 19.11.2005 16:36

Вложений: 1
Извиняюсь! Вот смотрите! :)

St. Father 21.11.2005 08:46

фпопу МК лоадер! мне для оффа. попробуйте, плиз у кого МХ/МХ2004 мож у вас получится? о.0 чет баг нехороший... все ж прально вроде... :(

iNils 21.11.2005 11:03

Тебя ffffff спрашивал чем не нравится прототип, а ты так и не ответил.

St. Father 21.11.2005 12:01

Цитата:

Сообщение от iNils
Тебя ffffff спрашивал чем не нравится прототип, а ты так и не ответил.

эмм... всем нраицца... не работет токма... в чем прикол? о.0
З.Ы. еси речь идет про МК прототип... то не подходит... т.к. нужно выделить онЛоад у ЧАСТИ клипов. для этого и был создан символ "la".
Если есть другое решение - подскажите плз.

iNils 21.11.2005 12:38

Взял твой скрипт. Сделал test.swf. Загружаю его в ll, после загрузки выводиться "loaded", через 3 секунды "nu?"

А что должно быть?

St. Father 21.11.2005 12:48

в идеале что-то типа
ff // от "конструктора" :)
loaded // от аттача
---3sec---
loaded // от загрузки файла
nu?
---3sec---
loaded // от загрузки файла
nu?
...
// мож я туплю чего? объясните плиз.

St. Father 22.11.2005 13:11

прошу прощения за флуд... тока тема давно висит... а тут еще и уползла в трэш...

Iv 22.11.2005 14:08

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

OnLoadCaller = function (){}
Object.registerClass("on_load_caller_mc", OnLoadCaller)
OnLoadCaller.prototype.__proto__=MovieClip.prototype
OnLoadCaller.prototype.onLoad = function () {
this._parent.onLoad = this.onParentOnLoad
this._parent.onLoad()
}
OnLoadCaller.prototype.onParentOnLoad = function () {
trace(this)
}

St. Father 22.11.2005 14:39

мне нужно вызвать ф-ю при наступлении события onLoad класса MovieClip но не для всех экземпляров этого класса, а только для некоторых клипов.

MOHCTEP 22.11.2005 20:38

Цитата:

Сообщение от St. Father
мне нужно вызвать ф-ю при наступлении события onLoad класса MovieClip но не для всех экземпляров этого класса, а только для некоторых клипов.

Цитата:

Сообщение от St. Father
фпопу МК лоадер!

Теперь и мне не ясно чего ж ты хочешь?
У меня при тесте простыми событиями "onLoad()" и "onData()" загрузка вообще не отследилась, даже, как ни странно, с моделью 5 Флеша та же проблема. MCL отработал идеально. Объясни, что тебе мешает подставлять просто ссылки на НУЖНЫЕ ТЕБЕ загружаемые клипы в общий загрузчик?

St. Father 23.11.2005 08:51

1. МКЛоадер - способ нажить себе гемор. ( В МОЕМ СЛУЧАЕ )
2. Зачем на вопрос "Почему это не работает?" и подробном (ИМХО) описании проблемы, предлагать что-то. Неужто нет людей которые могут объяснить почему наследуемый onLoad не срабатывает при завершении loadMovie?
3. Всем, кто не понял чего я хочу подставить в коде, приведенном на 1й странице вместо:
//задаем онлоад функцию
ff.prototype.onLoad = function ()
вот это:
//задаем онлоад функцию
MovieClip.prototype.onLoad = function ()
А затем сохранить файлик куда-нить, сделать пустой файлик test.swf в этой же дире и перекомпилить файлик с кодом.
Ну и есессно сравнить результаты (Output Panel)

7thsky™ 23.11.2005 14:08

Вся проблема в том что если ты сделаешь

your_prototype = new Object ();
your_prototype.onLoad = function () {trace ('walla');}

var mc = this.createEmptyMovieClip ('loadTest', 1);
mc.__proto__ = your_prototype;
mc.loadMovie ('test'swf');

при окончании загрузки ты не получишь в оутпут walla, почему? потому что прототип измениться на дифолный при полной загрузки Мува то есть на MovieClip.prototype.

Поэтому надо использовать внешний прелоадер либо через в MovieClip.prototype.onLoad - прописать некий менеджер...

St. Father 23.11.2005 14:15

Спасибо тебе, мил человек!
Именно это я и хотел услышать.


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

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