PDA

Просмотр полной версии : Долбаный прототип не работает :(((((


VovAchka
02.03.2003, 18:15
Ситуация:
Нуна создать прототип объекта меню
функции:
открывать
закрывать
регистрировать Айтемы

Глюк
Не работает прототип как Мувик.... логический (ну типа массива) - пашет, а вот так, чтоб мона было к нему мувик присобачить- глюк!

Вопрос:
В чем ошибка, кроме ДНК? Если класс создается из основного фрейма ...

ИДЕИ ЕСТЬ???

Nox Noctis
02.03.2003, 20:01
есть одна идея - покажи как ты это делаешь :)

VovAchka
04.03.2003, 14:19
function runeClass(){
this.initRune(MIID);
}
runeClass.prototype= new MovieClip();
runeClass.prototype.InitRune=function (MIID) {
attachMovie("rune",MIID, 100-i,runeClass());
setProperty(this, _x, 95);
setProperty(this, _y, 37+i*40);
//Object.registerClass(MIID, rune);
trace(MIID+'YYYYYYYYYYY')

};
runeClass.prototype.openRune = function() {
setProperty(this.bottomholder, _y, getProperty(this.bottomHolder, _y)+elmNum*ElHeight);
setProperty(this.paper, _height, getProperty(this.paper, _height)+elmNum*ElHeight);
setProperty(this.rune.paper, _y, this.paper._y+0.5*getProperty(this.paper, _height));
trace("opened"+getProperty(this,_x));
};
runeClass.prototype.closeRune = function() {
setProperty(this.bottomholder, _y, getProperty(this.bottomHolder, _y)-elmNum*ElHeight);
setProperty(this.paper, _height, getProperty(this.paper, _height)-elmNum*ElHeight);
setProperty(this.paper, _y, this.paper._y-0.5*getProperty(this.paper, _height));
};
ElHeight = 10;
elmNum = 9;
Object.registerClass('runeClass',runeClass);
//-----------------------------------------------------------------------------

function createItem(MIID, MITip, MIFunc, i) {
Name=MIID
Name=new runeClass(MIID);


}

menu.load("./menu.xml");


Все переменные грузим из XML и они точно грузятся....
Пробовал много вариантов, но все никак....
при некоторых вариантах грузятся сами мувики, но к ним не проходят обращения через функции-прототипы, и более того, если даже напихать все функции внутрь мувика, который грузим, эффект=0 - я не могу и к ним обратиться :(((
уже мозги кипят :(((
где тупая ошибка?

DeliMIter
04.03.2003, 21:31
function runeClass(){
this.initRune(MIID);
}Сразу - ты миид не берешь ниоткуда. Дальше не шел. Ищи ошибки, трейси, шаг за шагом.

Nox Noctis
04.03.2003, 23:02
вообще ничего такое сочетание в коде... =)
registerClass и setProperty... мутант будущего и динозавр позапрошлого :))

и вообще - Name=new runeClass(MIID); ничего тебе толкового не создаст.
Object.registerClass привязывает линкейдж клипа к калссу...
то есть у тебя есть клип, в библиотеке у него есть линкейдж, и все инстансы этого клипа будут тогда принадлежать не классу МувиКлип, а твоему зарегистрированному классу...

без клипа никак.

VovAchka
05.03.2003, 00:30
Поясняю:
1. MIID беру из XML он грузится, и только после этого запускаю функцию, там стоит трейс и он отлично все трейсит
2. И просто тупо Аттачил мувики этого прототипа, тоже фигня... клонирование не катит.... :(
3. пробовал даже писать регистерКласс на каждый мувик в отдельности

проблема не только в том, чтоб наклонировать эту порнографию, а и в том, что бы вызвать конкетную функцию, типа MIID.openRune(); MIID - ID пункта меню, значение типа MI3 (MenuItem3... не таак важно)
может кто знает что-то умнее, может принципиально по-другому? нужна полная динамика. Сенькс :)

VovAchka
06.03.2003, 12:53
Спасибо всем за Ваши советы.
Проблема решилась тихо-мирно. дело в том, что функцию низзя было вызывать через переменную, типа MIID.openRune();
а вот если вместо нее подставить значение, то все ОК. Было и еще пара глюков, но все работает.
Еще раз всем спасибо...

john
06.03.2003, 21:47
Вопрос следующий: где вы научились так писать???

Мне кажется, судя по вашему коду, за основу вы взяли книгу по флэш четыре, плюс хлелп флэш МХ....

Просто как раз пишу главу к моей книге.. Глава посвящена правильному написанию кода во флэш.... и ваш код очень... так сказать иллюстративен....

УильямБрэдберри
06.03.2003, 21:52
Оригинал написал(а) Nox Noctis
вообще ничего такое сочетание в коде... =)
registerClass и setProperty... мутант будущего и динозавр позапрошлого :))

ГЫ =)
метко!

присоединяюсь к Джону -
КТО ВАС ТАК НАУЧИЛ? :D

john
06.03.2003, 22:06
Хочу прояснить: это не "наезд" это просто вопрос.

Мне действительно интересно.
Такое скрещивание новых и древних конструкций я и до вас видел.... но чтобы так. и регистрКласс и сетПроперти....

Какую литературу читали?

Nox Noctis
06.03.2003, 22:55
джон, ты нечто монументальное пишешь ? :))

john
06.03.2003, 23:02
2 Nox

Да стараюсь :)
Выложу весь свой опыт :)
За пять лет много наработок ...

Nox Noctis
06.03.2003, 23:29
все любопытственнее и любопытственнее :))

VovAchka
07.03.2003, 23:12
Дабы решить все вопросы (или почта все)... я не пользовался литературой, сетПроперти родился благодаря тому, что у меня в определенный момент написания этого сочинения чего-то там не работало, и я проверял все подряд... бывает такое после пива, а исправлять когда заработало, стало облом...

Джону: на авторские права претендовать не буду, можете иллюстрировать :)

Спасибо за критику... хотя я бы предпочел в дополнение практические советы :)

С уважением ко всем критикам, Владимир