Просмотр полной версии : Вопрос по меню на Flash
Народ. Делаю вот такое меню:
http://a201.allfiles.ru/menu.swf
Там есть два пункта с выпадающими подменю.
Допустим открыли одно из этих двух выпадающих меню (например "о компании"), а затем, не сворачивая первого, кликнули на второе выпадающее меню ("условия работы"). У меня там активное меню сварачивается после чего приходится еще раз кликать по второму выпадающему меню что бы его развернуть.
Внимание, вопрос. Подскажите пожалуйста, как сделать так что бы при клике на другое выпадающее меню, при раскрытом первом, первое меню плавно свернулось и сразу плавно развернулось то, на которое кликнули?
Буньков Максим
29.11.2005, 20:25
Поди флешь сайты делаешь за деньги?
Все это делают функции это у тебя одна тимелине вод и юзаешь головку (воспроизводящюю) как тебе надо при каждом клике....
Знаешь че такое функции? а АС2? а ООП?
Поди флешь сайты делаешь за деньги?
Все это делают функции это у тебя одна тимелине вод и юзаешь головку (воспроизводящюю) как тебе надо при каждом клике....
Знаешь че такое функции? а АС2? а ООП?
Не, ну это так принято что ли теперь? Я нормально вопрос задал. Тут некоторые вообще, чуть ли не за них все сделать просят, а я разве что-нибудь нереальное спросил?
И разве надо быть профессиональным программистом, что бы простенькое меню сделать? Или для вас это тоже слишком сложно что не можете просто объяснить и предпочитаете "блистать умом", произнося умные слова? У вас самих образование какое? А сколько языков программирования знаете? Только Action Script 2? Я вот совсем не считаю себя программистом, хотя владею тремя языками. То что я не знаю Action Script, это вопрос времени, затем я и пришел сюда. Но видимо я ошибался, профессионалы здесь все перевелись, остались только "профессионалы".
используй флаги, проверяй открыто ли меню или нет и веди анимацию, почитай про if\if else\else
используй флаги, проверяй открыто ли меню или нет и веди анимацию, почитай про if\if else\else
Спасиб. А как это делать? Может где туториал внятный по этой теме есть?
да, интересует именно флаги и то как проверить открыто меню или нет.
Каждую ссылку обзаводишь переменной-флагом, изначально, допустим, ложным. При нажатии ссылки просматриваешь все флаги и если находится истинный, даешь команду на закрытие, соответствующего ему, пункта меню и установки флага в ложь. После окрываешь пункт, куды клюкнули и ставишь его флаг в истину. Вроде все...
а это я случайно 2 раза запостил
да просто это делается - по нажатию на пункт закрываешь все (предварительно можно создать массив высот всех пунктов в закрытом положении) и открываешь тот который нажал
Ну теория это все конечно понятно. Но как это сделать на практике? Вот как например переменную флаг к ссылке привязать? Это не говоря уже о всяких там массивах высот....
какой ссылке, чувак? и зачем тебе флаг? закрыл все - открыл один, закрыл все - открыл другой и так каждый раз
какой ссылке, чувак? и зачем тебе флаг? закрыл все - открыл один, закрыл все - открыл другой и так каждый раз
Это как? Вы бы подсказали бы как это все пишется, я на ActionScript почти что ничего не программировал. Куда и что вписывать я не знаю. Чайник совсем.
короче у меня тут разгар рабочего дня и тд, так что в коде куча ошибок(возможно) но ты уверен найдешь их сам. и сам напишешь 2 недостающие функции
gap = 5
for(var i=0;i<10;i++){
noo = _root.attachMovie("punkt_menu", "punkt_menu"+i,i)
noo._y = i*noo._height + gap
noo.y = noo._y
noo.num = i;
noo.contentHeight = высота вложенного меню для этого пункта
noo.onRelease = expandThis(noo)
}
expandThis = function(noo){
if(!this.expanded){
this.expanded = true
for(var i=noo.num; i<10;i++){
_root["punkt_menu"+i]._y += noo.contentHeight
}
noo.showContent(noo)
}else{
this.expanded = false
for(var i=noo.num; i<10;i++){
_root["punkt_menu"+i]._y -= noo.contentHeight
}
this._y = this.y
this.hideContent()
}
а писать то это все где? я только знаю как там какому-то кадру или элементу что-либо приписать.
И кстати, неужели нельзя как-нибудь проще с обычным таймлайном что-нибудь сделать?
можно сделать с таймлайном но это не будет проще. а прописывать это в кадре
Вообще, мне вот было бы проще с таймлайном. Я больше дизайнер чем программер.
ну так у тебя ж пока не получается ни так ни так насколько я понял)) так что ты не "больше дизайнер чем программер" а "меньше программер чем дизайнер"
Ну вот анимация вся и расположение по временной шкале у меня уже задано. И изначально рассчитывал это все в таймлайне делать. Потому там и прямая анимация и реверс, все это именно по кадрам сделано. Кода почти никакого нет. Именно поэтому мне сложно представить куда там какой код запихнуть можно.
чувак, я не могу понять - чего ты хочешь. я тебе написал код который сделает меню с чистого листа - почтим на 80 процентов готовый. без всякой анимации. ты отвечаешь что нет, кодом ты не хочешь а хочешь анимацией - ну пожалуйста, делай. только у тебя же не получается. вот и решай что проще - продолжать мучиться с анимацией или проанализировать код и доделать его. я все сказал
и вот доделаный код
gap = 5;
for (var i = 0; i<10; i++) {
noo = _root.attachMovie("punkt_menu", "punkt_menu"+i, i);
noo._y = i*(noo._height+gap);
noo.y = noo._y;
noo.num = i;
noo.expanded = false
noo.contentHeight = 50;
noo.onRelease = function() {
this.expandThis();
};
}
MovieClip.prototype.expandThis = function () {
if (!this.expanded) {
trace(this.num)
for (var i = 0; i<10; i++) {
_root["punkt_menu"+i]._y = _root["punkt_menu"+i].y;
}
for (var i = this.num+1; i<10; i++) {
_root["punkt_menu"+i]._y += this.contentHeight
}
this.expanded = true;
this.showContent(noo);
} else {
this.expanded = false;
for (var i = this.num+1; i<10; i++) {
_root["punkt_menu"+i]._y = _root["punkt_menu"+i].y;
}
this._y = this.y;
this.hideContent();
}
};
Это спасибо конечно. Но меню-то у меня нарисовано и анимация вся задана. См. начало топика, там ссылка есть. Надо бы только сделать что бы при клике на другом пункте меню сворачивалось и не останавливалось как у меня до следующего клика, а продолжало развертывать пункт на котором кликнули.
А код я не знаю как правильно вставить и связать с нарисованным, что бы заработало все. Уж простите ламера...
Буньков Максим
30.11.2005, 07:00
Ты пытаешься сходить по большому... а у тя запор.. тебе надо программера нанимать... исходники выдавать запрещают... значит тебе тока коды и дают, а если ны не знаешь синтаксис... ну что я могу посоветовать... тебе в раздел Работа...
Буньков Максим
30.11.2005, 07:28
Не, ну это так принято что ли теперь? Я нормально вопрос задал. Тут некоторые вообще, чуть ли не за них все сделать просят, а я разве что-нибудь нереальное спросил?
И разве надо быть профессиональным программистом, что бы простенькое меню сделать? Или для вас это тоже слишком сложно что не можете просто объяснить и предпочитаете "блистать умом", произнося умные слова? У вас самих образование какое? А сколько языков программирования знаете? Только Action Script 2? Я вот совсем не считаю себя программистом, хотя владею тремя языками. То что я не знаю Action Script, это вопрос времени, затем я и пришел сюда. Но видимо я ошибался, профессионалы здесь все перевелись, остались только "профессионалы".
Ты меня конечно прости... но меня раздражает когда люди не пытаются что то сами изучить, у них это просто не получается...потому что у них горят сроки по флешу.. а флешь они не знают... приходят на флешер ру и просят исходники... дак вот я зол на тебя ты уж прости мой характер... присылаю тебе исходник... нацеленный на дизайнера... потому что ужасно сделан.. но решает твою проблему.
Господа д0цент и Буньков Максим! Подобные речи здесь никому кроме вас не интересны, так что пошли бы вы с ними в PM или IM.
Тема закрыта.
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.