PDA

Просмотр полной версии : Смена картинок


Lindows
15.09.2008, 14:32
Как сделать простую смену картинок (имена картинок брать из текстового файла), через некоторый интервал, просто, без всяких кнопок, автоматическая смена.. и чтобы изображение центрировалось.. помогите пожалуйста.... уже 2 дня мучаюсь))

Doctor76
15.09.2008, 15:54
а одну просто загрузитьь получается?

Doctor76
15.09.2008, 16:30
Этот пример конечно не грузит картинок, но его можно и доработать.


var arr_urlImg:Array = new Array("Картинка1","Картинка2","Картинка3");
this.createTextField("timer_txt", 10, 10, 100, 300, 22);
timer_txt.border = true;

var count:Number = 0;
var load_count:Number = 0;
function updateTimer():Void {

count++;
var load_img:String = arr_urlImg[load_count]
if(count %10 == 0){
timer_txt.text = "грузим картинку "+ load_img
load_count++
}
if(load_count >= arr_urlImg.length){
trace(load_count)
clearInterval(intervalID);
}

}

var intervalID:Number = setInterval(updateTimer, 500);

Da_Demon
15.09.2008, 17:05
А чем не устраивает просто кадров сделать пару между картинками?

Doctor76
15.09.2008, 17:18
Ну в вопросе же писали - брать из файла названия картинок.
А в кадрах- в каждом прописывать свое название картинки ? Не спортивно.
Да и если картинок туева хуча??
Тут и скорость загрузки можно поменять быстро.

Весёлый Ботаник
15.09.2008, 17:38
Разве нельзя все картинки в одну собрать, а потом аттачить.

Lindows
16.09.2008, 11:13
нужно именно данные о картинках брать из внешнего файла (xml, txt... неважно) ничего не получается(((

crazyone
16.09.2008, 11:50
Фраза "ничего не получается" работает против вас. Разбейте задачу на шаги и реализовывайте все шаги по отдельности.
1. Загрузить и отпарсить данные.
2. По данным загрузить картинку. +центрировать ее.
3. Организовать смену картинок.

Делать при помощи:
1. LoadVars.load()/XML.load() + обработчик LoadVars.onLoad/XML.onLoad
2. MovieClipLoader + обработчик события MovieClipLoader.onLoadInit + свойства мувиклипов.
3. Как душа пожелает, можно onEnterFrame, можно setInterval, можно сделать анимацию в мувиклипе и грузить картинки в анимированный контейнер.

Я конечно сомневаюсь, что вы будете с этим разбираться, потому что постановка вопроса у вас звучит как "ничего не получается", но вдруг...

Wolsh
16.09.2008, 12:17
Ну не давите на человека, как будто сами новичками не были.
Lindows, давайте просто по порядку! Давайте сначала получим список картинок и научимся по нему загружать. Есть вопросы?

Lindows
16.09.2008, 12:17
просто я не очень разбираюсь во флеше, тем более в аутион скрипт...

Lindows
16.09.2008, 12:29
вот нашел код, все работает, он грузит картинки из паки, все... это даже лучше, без вских файлов... но проблема в том, что он не масштабирует картики... а показывает их с левого верхнего угла, а картинки будут разной ширины и длинны...

//примечание: в папке картинки должны начинатся с названия image1.jpg

var my_mcl:MovieClipLoader = new MovieClipLoader();
var myListener:Object = new Object();
myListener.onLoadStart = function(target_mc:MovieClip) {
var loadProgress:Object = my_mcl.getProgress(target_mc);
};
myListener.onLoadProgress = function(target_mc:MovieClip, loadedBytes:Number, totalBytes:Number) {
};
myListener.onLoadComplete = function(target_mc:MovieClip) {
var loadProgress:Object = my_mcl.getProgress(target_mc);
};
myListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._alpha = 0;
fade_dir = true;
my_interval = setInterval(fade, fade_time);
};
myListener.onLoadError = function(target_mc:MovieClip, errorCode:String) {
whichPic=1;
my_mcl.loadClip("images/image"+whichPic+".jpg", clip1_mc);
//whichPic - нумерация картинок
//"images/image"+whichPic+".jpg" - путь к картинкам
// clip1_mc - мувик в который производится загрузка
};
my_mcl.addListener(myListener);


var my_interval;
var pause_interval;
var whichPic = 1;
var fade_dir = true;
var fade_step = 30; //кол-во альфа
var fade_time = 80; //время исчезновения
var pause_time = 3500; //задержка во времени при альфа=100

function pause_me()
{
clearInterval(pause_interval);
my_interval = setInterval(fade, fade_time);
}
my_mcl.loadClip("images/image"+whichPic+".jpg", clip1_mc);
//whichPic - нумерация картинок
//"images/image"+whichPic+".jpg" - путь к картинкам
// clip1_mc - мувик в который производится загрузка

function fade() {
if(clip1_mc._alpha>=100 && fade_dir==true)
{
fade_dir = false;
clearInterval(my_interval);
pause_interval = setInterval(pause_me, pause_time);
return;
}

if (clip1_mc._alpha<100 && fade_dir==true) {
clip1_mc._alpha+=fade_step;
}
else {
fade_dir=false;
if(clip1_mc._alpha>0)
{
clip1_mc._alpha-=fade_step;
} else {
clearInterval(my_interval);
whichPic++;
my_mcl.loadClip("images/image"+whichPic+".jpg", clip1_mc);
//whichPic - нумерация картинок
//"images/image"+whichPic+".jpg" - путь к картинкам
// clip1_mc - мувик в который производится загрузка
}
}

}

пробывал загружать так:
loadMovie("images/image"+whichPic+".jpg",_root);

они так вроде масштабируются, то есть границы проигрователя подгоняются под рнисунок, но они у меня тогда не листаются... :o

Doctor76
16.09.2008, 13:11
Что то мне не оч. ясно, как Вам надо масштабировать, и как листать???
Либо картинки грузятся одна за другой с интервалом времени каким то, либо грузится первая, и по какому то событию грузится следующая....

Lindows
16.09.2008, 13:22
картинки грузятся одна за другой с интервалом времени

Wolsh
16.09.2008, 13:41
Так вам надо чтоб картинки масштабировались или чтобы окно плеера изменялось под картинки?)))

Lindows
16.09.2008, 13:59
окно плеера изменялось под картинки)

Doctor76
16.09.2008, 14:18
Окно плеера изменять не пробовал.
Но за это отвечает объект Stage вроде бы

Я бы так попробовал::


//после загрузки...
Stage.width = clip_img._width;
Stage.height = clip_img._height
//clip_img -в который картинку грузим


Я так не пробовал(не было надобности)
Но может, кто пробовал, меня поправят...

Lindows
16.09.2008, 14:22
не работает(

DJ_Baton
16.09.2008, 14:35
программно центрировать фотку надо расчитать центр фотки, для этого:
photo._x+photo._width/2 //центр по Х
photo._y+photo._height/2 //центр по У
т.е. если по координатам сдвинуть в минус фотку это должен быть её центр
хотя можешь в ручную спозиционировать центровым крестиком внутри мувика или заюзать функции меню Align там тоже есть для позиционирования кнопочки, эт для простой анимации без программирования

Wolsh
16.09.2008, 15:47
окно плеера изменялось под картинки)
При загрузке прямиком в _root весь ваш мувик удаляется из плеера и заменяется картинкой. Именно поэтому следующая не грузится - с чего бы, клипа который ее загрузил бы больше нет, есть только изображение))))) Поэтому размер конечно меняется, плеер подстраивается под новый ФАЙЛ контента. Это, как Вы понимаете, совсем не путь))) А вот скажите, что Вы собрались делать с плеером, меняющим размер своего окна? Ведь не в хтмл-страницу же вставлять?))
Doctor76, Stage.width и Stage.height - свойства только для чтения. Плеер не может сам менять размеры своего окна в пределах проигрывания одного файла.

Doctor76
16.09.2008, 16:23
Ну да.. моя неграмотность(я Stage только для чтения и использовал) , но буду знать
Wols, а в 3 AS не в курсе, есть возможность изменять размер плеера?

Wolsh
16.09.2008, 21:00
А Вы гдето видели программу, меняющую свои размеры в процессе работы? Не видеоплеер, подстраивающийся под размеры ОТКРЫВАЕМОГО в нем ролика, а так просто, из каких-то своих соображений? Если приведете убедительный пример, зачем это надо, я залезу в хелп и сообщу Вам, что там написано)))))

Lindows
17.09.2008, 10:19
Wolsh, в html)

Wolsh
17.09.2008, 12:38
И что, Вы думаете окошко плеера там будет всячески скакать и изменять свои размеры, раздвигая страницу, текста и картинки и т.п.?

Lindows
17.09.2008, 13:06
незнаю... мне бы хоть както сделать уже....

Lindows
17.09.2008, 13:06
впринципе с этим я разобрался.. но теперь всетаки опять нужно читать имена картинок из фалов...