Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Передача параметров Mouse_wheel (http://www.flasher.ru/forum/showthread.php?t=148864)

Mulin 13.01.2011 02:23

Передача параметров Mouse_wheel
 
Собсно код
Код AS3:

function updateText():void
{
        var i:uint=0;       
        for(i;i<xmlList.length();i++)
        {               
 menuItem = new MenuItem();
 menuItem.menuLabel.htmlText+=xmlList[i].name;
 menuItem.menuLabel2.htmlText+=xmlList[i].text;
 menuItem.id=i;
 menuItem.id_txt.text=menuItem.id;
 menuItem.x = 15;
 menuItem.y = 15 + i*120; //Сюда нужно передать параметр от колеса
 menuItem.buttonMode = true;
 menuItem.mouseChildren = false;
 menuItem.addEventListener(MouseEvent.MOUSE_DOWN, Select);
 addChild (menuItem);
 id_txt.text=xmlList.length();

Код слушателя колеса

Код AS3:

stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheel);
function wheel(e:MouseEvent):void
{
        var pos:int = e.delta;
        trace(pos)
        dd.y += pos * 20;// это просто обьект
}

Пробывал и так и сяк, получается лажа, уже не знаю и что делать :(

TanaTiX 13.01.2011 02:42

Цитата:

Пробывал и так и сяк, получается лажа, уже не знаю и что делать
Думаю, никто не знает. Проблема-то в чем?

Mulin 13.01.2011 02:45

TanaTiX, проблема в том, что нужно сделать скролирование массива создаваемых мувиклипов. То есть я вращаю колесо мышки, слушатель определяет сдвиг и изменяет положение начального мувиклипа, за ним двигаются все остальные. Уверен код простой, но какой?

TanaTiX 13.01.2011 03:00

Поместите все ваши menuItem-ы в контейнер и двигайте контейнер.
Заодно и слушатель можно будет один оставить, а не плодить их, аки кроликов.

andrew911 13.01.2011 03:02

Заведите функцию сдвига массивов, при скроллировании вызывайте ее.
Почему не поместить массив мувиков в контейнер и не двигать его? А слушатель повесьте на контейнер.

Mulin 13.01.2011 17:41

потому что я чайник, не знаю как поместить в контейнер массив, пробывал и так и сяк не выходит. То есть именно тот код что выше, бо все остальное уже написал под него и переписывать долго. Тем более этих менюитемов будет становиться все больше и больше, в конечном итоге они перестанут влезать в контейнер, ну или я чет не понимаю

TanaTiX 13.01.2011 18:17

это до цикла
Код AS3:

var youContainer:Sprite=new Sprite();
addChild(youContainer);

а в цикле небольшая правка
Код AS3:

youContainer.addChild (menuItem);


Mulin 13.01.2011 18:38

TanaTiX, спасибо, сделал все как вы сказали, все работает ))
Маленький вопросик, а как ограничители поставить что бы контейнер не уходил полностью из поля?
Код AS3:

stage.addEventListener(MouseEvent.MOUSE_WHEEL, wheel);
function wheel(e:MouseEvent):void
{
        var pos:int = e.delta;
        trace(pos)
        Container.y += pos * 20;// это просто обьект
}


TanaTiX 13.01.2011 18:57

Можно проверять его значение.
Код AS3:

if(obj.y<50){
 obj.y=50;
}


Mulin 13.01.2011 19:24

TanaTiX, спасибо, дружище, все работает!


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

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