Просмотр полной версии : dropDown menu?
Дорогие форумчане помогите пожалуйста с кодом для выпадающего меню
Прблема: Не получается указать кординату по оси "_y"
var menu = ["one", "two", "three", "four"];
//mainMenu.onRelease = function () {
for (var i = 0; i<menu.length; i++) {
var b = attachMovie("subMenu", "subMenu"+i, i);
eval("subMenu"+i)._y = 16*i;
b.txt = menu[i];
}
//};
! subMenu имя переменной в библиотеке
Infectedcell
27.10.2009, 17:46
Код надо оформить тегом... а то ща ругаться начнут )))
что значит не получается указать координату Y, кому/чему?
так?
var menu = ["one", "two", "three", "four"];
var Y_POSITION:Number =0;
mainMenu.onRelease = function () {
for (var i = 0; i<menu.length; i++) {
var b = attachMovie("subMenu", "subMenu"+i, i);
b._y = Y_POSITION
b.txt = menu[i];
Y_POSITION = Y_POSITION + 16
}
};
комбинация масса..
или я не о том? )))
amexdesign
27.10.2009, 18:32
всё намного проще
var menu = ["one", "two", "three", "four"];
mainMenu.onRelease = function () {
for (var i = 0; i<menu.length; i++) {
var b = attachMovie("subMenu", "subMenu"+i, i);
b._y = b._height*i;
b.txt = menu[i];
}
};
не точно описал извиняюсь)
В моем коде я хочу указать для клипа "subMenu" координаты _x, _y
Чтобы "subMenu" при нажати на кнопку "menu" появлялся под кнопкой "menu"
Но когда я указываю координаты (см. Пример) все дубликаты "subMenu" появляются на одной точке, да еще и один дубликат "four" (см. Рисунок)
Пример: b._x = 10; b._y = 27
var menu = ["one", "two", "three", "four"];
//mainMenu.onRelease = function () {
for (var i = 0; i<menu.length; i++) {
this.attachMovie("subMenu", "subMenu"+i, i);
this.["subMenu"+i]._y = 16*i;
this.["subMenu"+i].txt = menu[i];
}
//}
to spooner вот только дубликаты "subMenu" появляются над кнопкой "menu"
Я хотел чтоб под кнопкой "menu"
Я указал координаты но, _y не реагирует так как видимо он уже задействован в
this["subMenu"+i]._y = 16*i;
amexdesign
28.10.2009, 15:30
попробуй следующее:
под кнопкой "меню" расположи пустой мувик и назови его "submenu" и примени следующий код:
import mx.transitions.Tween;
import mx.transitions.easing.*;
var menu:Array = new Array("one", "two", "three", "four");
var currentButton:Number = -1;
var y:Number = 0;
var buttonInterval:Number;
menu.onRelease = function () {
buttonInterval = setInterval(createNextButton, 150);
}
function createNextButton(){
if(currentButton < menu.length){
// включаем 'счётчик' кнопок
currentButton++;
var b:MovieClip = submenu.attachMovie("subMenu", "subMenu" + currentButton, currentButton);
b.txt.text = menu[currentButton];
b._y = y;
y += b._height;
b._alpha = 0;
// в зависимости от fps увеличиваем или уменьшаем время альфа-твина
var t:Tween = new Tween(b, "_alpha", Regular.easeOut , 0, 100, 1, true);
ID = currentButton;
b.ID = ID;
b.seen = 0;
b.onRollOver = function() {
if (this._parent.pressed != this.ID) {
this.gotoAndPlay("in");
}else{
this.gotoAndPlay("in");
}
};
b.onRollOut = b.onReleaseOutside = function() {
if (this._parent.pressed != this.ID) {
if (!this.seen) {
this.gotoAndPlay("out");
} else {
this.gotoAndPlay("out");
}
}else{
this.gotoAndPlay("out");
}
};
b.onRelease = function() {
// прежде нажатая кнопка снова активируется
this._parent["subMenu" + this._parent.oldPressed].enabled = 1;
this._parent["subMenu" + this._parent.oldPressed].gotoAndStop(1);
// var pressed > одним 'слоем' выше сохраняется ID этой кнопки
this._parent.pressed = this.ID;
// эта кнопка маркируется как виденная
this.seen = 1;
// эта кнопка маркируется как деактивированная
this.enabled = 0;
// var переписывается
this._parent.oldPressed = this._parent.pressed;
// в этой кнопке переход к маркеровке 'выбранна'
this.gotoAndStop("activ");
// функция, выполняемая при нажатии на эту кнопку
//setSubTitel();
};
}
// все кнопки расположенны, удаляем интервал
if(currentButton == menu.length){
clearInterval(buttonInterval);
}
}
Спасибо всем огромное за помощь)
вопрос не закрыт пишите пожалуйста
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.