![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
пункты меню загружаются из библиотеки и встают друг за другом, когда наводишь на один из пунктов мув внутри него проигрывается и увеличивается вертикально, как настроить, чтобы остальные пункты меню изменяли свою координату по y?
myPhoto = new XML ();
myPhoto.ignoreWhite = true;
myPhoto.onLoad = function (success) {
//если xml загрузился, то присваиваем переменной numimages значение количества узлов(фоток галереи)
numimages = this.firstChild.childNodes.length;
//ширина иконки + расстояние между иконками в мувике thumbnails
spacing = 13;
// проходим циклом по массиву
for (i = 0; i < numimages; i++) {
// берём первый узел
this.picHolder = this.firstChild.childNodes[i];
//создаём в мувке thumbnails пустой мувиклип с названием thumbnail1 и глубиной 1
this.thumbHolder = thumbnails.createEmptyMovieClip ("thumbnail" + i, i);
this.pred = "thumbnails." + "thumbnail" + (i - 1);
// его координата по x относительно thumbnails равна числу номера узла умноженному на spacing
this.thumbHolder._y = i * spacing;
//создание ещё одного пустого клипа в пустом клипе
this.thumbLoader = this.thumbHolder.createEmptyMovieClip ("thumbnail_image", 0);
//загрузка linkage клипа во внутреннй пустой мувиклип
this.pic = this.thumbLoader.attachMovie ("btn_menu", "btn_menu_01", i);
//загрузка картинки во внутреннй пустой мувиклип
this.pic.pic_menu.loadMovie (this.picHolder.attributes.thmb);
// сколько работ в разделе
_root.rabotki.rabotki.text = "В разделе " + razdel + " " + numimages + " работ.";
this.thumbHolder.title = this.picHolder.attributes.title;
this.thumbHolder.main = this.picHolder.attributes.main;
this.thumbHolder.wi = this.picHolder.attributes.wi;
this.thumbHolder.hi = this.picHolder.attributes.hi;
this.thumbHolder.opisanie = this.firstChild.childNodes[i].childNodes[0].nodeValue;
//реакция на релиз
this.thumbLoader.onRollOver = function () {
this.btn_menu_01.gotoAndPlay (2);
};
this.thumbLoader.onRollOut = function () {
this.btn_menu_01.gotoAndPlay (26);
};
}
};
myPhoto.load ("xml_photo.xml");
Последний раз редактировалось iNils; 09.03.2008 в 22:28. |
|
|||||
var _this=this;
this.thumbLoader.onRollOver = function () {
for(var j:Number=0;j<_this.numimages;j++){
if(j==i){continue;}
var newYCoord =100;//изменить
var menuItem = _this.thumbnails['thumbnail' + i];
menuItem.motion = new mx.transitions.Tween(menuItem, "_y", mx.transitions.easing.Strong.easeOut,menuItem._y, newYCoord, 50, false);
}
}
|
|
|||||
|
что то у меня не пашет, может не туда втавилось...
прикрепляю то , что у меня получилось, помоги, пожалуйста. |
|
|||||
var nItems:Number;
myPhoto.onLoad = function(success) {
//если xml загрузился, то присваиваем переменной numimages значение количества узлов(фоток галереи)
numimages = this.firstChild.childNodes.length;
nItems=numimages
//ширина иконки + расстояние между иконками в мувике thumbnails
spacing = 13;
// проходим циклом по массиву
for (i=0; i<numimages; i++) {
// берём первый узел
this.picHolder = this.firstChild.childNodes[i];
//создаём в мувке thumbnails пустой мувиклип с названием thumbnail1 и глубиной 1
this.thumbHolder = thumbnails.createEmptyMovieClip("thumbnail"+i, i);
this.pred = "thumbnails."+"thumbnail"+(i-1);
// его координата по x относительно thumbnails равна числу номера узла умноженному на spacing
this.thumbHolder._y = i*spacing;
//spacing = this.thumbnails.thumbHolder._height
//this.thumbHolder._y = i * spacing ;
//создание ещё одного пустого клипа в пустом клипе
this.thumbLoader = this.thumbHolder.createEmptyMovieClip("thumbnail_image", 0);
//загрузка linkage клипа во внутреннй пустой мувиклип
this.pic = this.thumbLoader.attachMovie("btn_menu", "btn_menu_01", i);
//загрузка картинки во внутреннй пустой мувиклип
this.pic.pic_menu.loadMovie(this.picHolder.attributes.thmb);
// сколько работ в разделе
_root.rabotki.rabotki.text = "В разделе "+razdel+" "+numimages+" работ.";
this.thumbHolder.title = this.picHolder.attributes.title;
this.thumbHolder.main = this.picHolder.attributes.main;
this.thumbHolder.wi = this.picHolder.attributes.wi;
this.thumbHolder.hi = this.picHolder.attributes.hi;
this.thumbHolder.opisanie = this.firstChild.childNodes[i].childNodes[0].nodeValue;
}
addHandlers();
};
myPhoto.load("xml_photo.xml");
function addHandlers() {
var mc;
for (var num:Number = 0; num<nItems; num++) {
mc = thumbnails['thumbnail'+num];
mc.thumbnail_image.num = num;
mc.thumbnail_image.onRollOver = function() {
this.btn_menu_01.gotoAndPlay(2);
_root.moveMenuItems(this.num);
};
mc.thumbnail_image.onRollOut = function() {
this.btn_menu_01.gotoAndPlay(26);
};
}
}
function moveMenuItems(cnt:Number):Void {
var newYCoord:Number;
var menuItem:MovieClip;
for (var j:Number = 0; j<nItems; j++) {
if (j == cnt) {
continue;
}
menuItem = thumbnails['thumbnail'+j];
newYCoord = menuItem._y+10;//изменить
menuItem.motion = new mx.transitions.Tween(menuItem, "_y", mx.transitions.easing.Strong.easeOut, menuItem._y, newYCoord, 50, false);
}
}
|
|
|||||
|
прикольно), а нельзя как-нить чтобы например Y последующей был равен Y предыдущей + её высота, и как нить апдейт делать ежекадрово?
|
|
|||||
|
если все thumbnail одинакового размера, то можно сделать универсально...
хотя правильнее было бы, как и сказал iNils, сначала определять размер имажа а алгоритм динамического сдвига я могу выслать (недавно тренировался делать полностью динамическое меню...)
__________________
Самый великий программер - БОГ! |
|
|||||
|
Aisaid, все thumbnail одинакового размера когда закрыты и когда открыты, а когда на них наводишь происходит анимация, и хочется, чтобы остальные закрытые отъезжали , открывая наведённый, если у тебя есть динамическое меню вышли пожалуйста, я делаю диплом мне хотелось меню как на сайте http://www.marc-aurel.com/2007/ в разделе lookbook? где фотки моделей выбираются. Но если будет чтото интересное динамичное но в другом виде тоже может подойти....
|
![]() |
![]() |
Часовой пояс GMT +4, время: 18:59. |
|
|
« Предыдущая тема | Следующая тема » |
|
|