Просмотр полной версии : управление роликами
доброго времени суток :)
вопрос вот в чем:
есть некое поле в котором расположены три поля (рамки с картинками) и управляющая кнопка ... нужно чтобы при щелчке на кнопке картинки "погасли" (прозрачность 100) одна за другой с равным интервалом, потом произошла смена картинок в каждом поле (в "погашенном" состоянии) и затем рамки также постепенно "включились" бы (прозрачность=0) но уже с новыми картинками внутри ...
спасибо :)
Для того что бы сделать, нужно подумать. Имеем массив с именами картинок, пишем функцию загрузки картинок в требуемые клипы, сразу клипам присваеваем _alpha=0. Проверяем загрузку, если все загрузилось, запускаем еще одну функцию появления. Нажимаем кнопку берем имена картинок к примеру из другого массива и создаем в мувиках еще по одному мувику и повторяем предыдущие действия. Ничего сложного да и вариантов выполнения множество
спасибо Futs :)
может есть какой-либо "сэмпл" из которого изложенное может понять ИДИОТ ? :) кое-как разобрался с 4-ой версией "флэш" а потом "перепрыгнул" на OS X и оказался нос к носу с этим МХ ... :( можно как-то на примерах показать эти операции ?
спасибо :)
спасибо Futs
может есть какой-либо "сэмпл" из которого изложенное может понять ИДИОТ ? кое-как разобрался с 4-ой версией "флэш" а потом "перепрыгнул" на OS X и оказался нос к носу с этим МХ ... можно как-то на примерах показать эти операции ?
спасибо
1)добавляешь все картинки в массив:
mArr = [];
for (var i = 1; i<кол-во картинок; i++) {
mc = след картинка
mArr.push(mc);
}
2)создаем функцию, которая будет делать какие-то действия по очереди:
MovieClip.prototype.startConveyer = function(arr, func, offcet, speed, onComplete) {
this.t = offcet;
this.func = func;
this.arr = arr;
this.speed = speed;
this.onComplete = onComplete;
this.onEnterFrame = function() {
this.arr[this.t].onComplete = this.func;
this.arr[this.t].onComplete();
if (this.t>this.arr.length) {
delete this.onEnterFrame;
this.onComplete();
}
this.t += this.speed;
};
};
3) создаем функции появления-погасания
MovieClip.prototype.appear = function(){
this.alpTo(100,3)
}
MovieClip.prototype.disAppear = function(){
this.alpTo(0,3)
}
4) да, не забываем про сами прототипы транзишнов:
MovieClip.prototype.alpTo = function(alp, speed, onComplete) {
this.alp = alp;
this.speed = speed;
this.onComplete = onComplete;
this.onEnterFrame = function() {
this._alpha += (this.alp-this._alpha)/this.speed;
if (Math.abs(this._alpha-this.alp)<2) {
delete this.onEnterFrame;
this._alpha = this.alp;
this.onComplete();
}
};
};
5) пишем более-менее универсальный код загрузчика:
MovieClip.prototype.loadImage = function(src, onComplete) {
this.createEmptyMovieClip("image_holder", 100);
this.mclListener = new Object();
this.mclListener.onLoadComplete = function(trg) {
trg.onComplete();
};
this.mclListener.onLoadStart = function(trg) {
trg.onComplete = onComplete;
};
this.mclListener.onLoadStart = function(trg) {
};
this.image_mcl = new MovieClipLoader();
this.image_mcl.addListener(this.mclListener);
this.image_mcl.loadClip(src, this.image_holder);
};
теперь пишем код который грузит новые картинки:
loadNewImages = function(){
for(var i in mArr){
mArr[i].loadImage(линк на картинку, событие по окончанию)
}
функцию которая следит за тем - загрузились ли все картинки - напиши сам
мне ее писать сейчас лень но допустим она вызывает onAllImagesLoaded()
Дальше - картинки исчезают:
controller = _root.createEmptyMovieClip("controller", 100)
controller.startConveyer(mArr , disAppear, 0, 1, loadNewImages);
loadNewImages вызывается, загружает, потом вызывается onAllImagesLoaded()
onAllImagesLoaded = function(){
mArr.reverse() //если ты хочешь чтоб они появлялись в обратном порядке
controller.startConveyer(mArr , аppear, 0, 1);
}
много кода слишком. можно проще - но у меня уже готовые функции были
2 Король, грамотно - особенно понравился конвеер, надо будет взять идею на вооружение, помню парился с подобной задачей, но боюсь Владу трудно будет с этим разобраться, а писать попроще времени нет.
2 Влад, думаю тебе лучше поискать исходник какой-нибудь галереи их не так мало
Хехе :) Конвеер :) Интересно, читает ли нас Джон:)
ну у Джона то другой конвеер) хотя название, конечно, не супероригинальное
Спасибо за ответ, Король :)
что называется "а дураки все не унимались ..." ... мнеэто было бы проще разобрать полазив по каком-нибудь "сэмплу" ... можно ли сделать что-то похожее:в поле пара рамок с картинками внутри и управляющая кнопка ... при нажатии на кнопку картинки внутри рамок "гаснут" одна за другой, в погашеном состоянии внутри рамок происходит смена слайдов и во включившихся (так жеодно за другим) видны новые картинки ...
работа естсественно чего-то СТОИТ ... озвучте! :)
удачного дня :)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.