Форум 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)
-   -   dropDown menu? (http://www.flasher.ru/forum/showthread.php?t=131745)

Acxat 27.10.2009 15:30

dropDown menu?
 
Вложений: 1
Дорогие форумчане помогите пожалуйста с кодом для выпадающего меню

Прблема: Не получается указать кординату по оси "_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, кому/чему?

так?

Код AS1/AS2:

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];
  }
};


Acxat 28.10.2009 09:20

Вложений: 1
не точно описал извиняюсь)

В моем коде я хочу указать для клипа "subMenu" координаты _x, _y
Чтобы "subMenu" при нажати на кнопку "menu" появлялся под кнопкой "menu"
Но когда я указываю координаты (см. Пример) все дубликаты "subMenu" появляются на одной точке, да еще и один дубликат "four" (см. Рисунок)

Пример: b._x = 10; b._y = 27

spooner 28.10.2009 09:40

Код AS1/AS2:

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];
}
//}


Acxat 28.10.2009 11:17

to spooner вот только дубликаты "subMenu" появляются над кнопкой "menu"
Я хотел чтоб под кнопкой "menu"

Я указал координаты но, _y не реагирует так как видимо он уже задействован в
this["subMenu"+i]._y = 16*i;

amexdesign 28.10.2009 15:30

попробуй следующее:
под кнопкой "меню" расположи пустой мувик и назови его "submenu" и примени следующий код:
Код AS1/AS2:

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);
        }
}


Acxat 29.10.2009 08:36

Спасибо всем огромное за помощь)

вопрос не закрыт пишите пожалуйста


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

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