![]() |
|
||||||||||
|
|||||
|
Регистрация: Mar 2009
Сообщений: 49
|
Добрый день!.
Взялся тут написать шапку сайта.. в ней фотогалерея. Идея -на главной сцене 3 мувиклипа , в них "random" подгружается "random" фотографии ,через xml. Вопрос 1, может есть исходники уже с решенной похожей задачей? Вопрос 2. Я написал свой вариант, он работает.. вот код: //инициализация переменных ( все в первом кадре ,в мувиклипе) var timeout:Number = new Number(); var num_rand:Number = new Number(); var my_lv:LoadVars = new LoadVars(); var num_pic: Number = new Number(); var num_mov: Number = new Number(); var cur_num1: Number = new Number(); var cur_num2: Number = new Number(); var cur_num3: Number = new Number(); var intervalId:Number = new Number(); cur_num1=0; cur_num2=1; cur_num3=2; timeout=100; num_rand=0; num_pic=0; num_mov=0; loads_var(); btn1.onPress = function() { setInterval(randImage, timeout); } function close_books() { trace("flag_books: "); } function loads_var() { my_lv.onData = function(src:Number) { if (src == undefined) { trace("Error loading content."); return; } info.text=(" "+src); timeout=src; }; my_lv.load("photo.ini",my_lv,"GET"); } //загрузка /обработка xml function loadXML(loaded) { if (loaded) { xmlNode = this.firstChild; image = []; description = []; total = xmlNode.childNodes.length; for (i=0; i<total; i++) { image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue; description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue; } firstImage(); setInterval(randImage, timeout); // запуск фото просмотра } else { content = "file not loaded!"; } } xmlData = new XML(); xmlData.ignoreWhite = true; xmlData.onLoad = loadXML; xmlData.load("images.xml"); ///////////////////////////////////// ///////////////////////////////////// p = 0; // загрузка фотографий this.onEnterFrame = function() { filesize = picture.getBytesTotal(); filesize1 = picture1.getBytesTotal(); filesize2 = picture2.getBytesTotal(); loaded = picture.getBytesLoaded(); preloader._visible = true; if (loaded != filesize) { preloader.preload_bar._xscale = 100*loaded/filesize; } else { preloader._visible = false; if (picture._alpha<100) { picture._alpha += 2; } if (picture1._alpha<100) { picture1._alpha += 2; } if (picture2._alpha<100) { picture2._alpha += 2; } } }; // Функция подгружает разные фото в разные муви-клипы (Фото не повторяются) function randImage() { num_pic=rando(); num_mov=random(3); trace("num_pic: " + num_rand); if (loaded == filesize) { if(num_mov==0) { if(num_pic!=cur_num1 & num_pic!=cur_num2 & num_pic!=cur_num3) { picture._alpha = 0; //intervalId = setInterval(s,500); picture.loadMovie(image[num_pic], 1); cur_num1=num_pic; } } else if(num_mov==1) { if(num_pic!=cur_num1 & num_pic!=cur_num2 & num_pic!=cur_num3) { picture1._alpha = 0; picture1.loadMovie(image[num_pic], 1); cur_num2=num_pic; } } else if(num_mov==2) { if(num_pic!=cur_num1 & num_pic!=cur_num2 & num_pic!=cur_num3) { picture2._alpha = 0; picture2.loadMovie(image[num_pic], 1); cur_num3=num_pic; } } desc_txt.text = description[num_rand]; //picture_num(); } } //функция рандома, получение номер фотографии, отличный от предыдушего function rando() { trace("rando_star"); while(num_rand==current_pos) { num_rand=random(total); trace("cur_pos "+current_pos); trace("num_rand "+num_rand); } current_pos=num_rand; return num_rand; } //функция , загрузки первых фотографий в мувиклипы function firstImage() { if (loaded == filesize) { picture._alpha = 0; picture1._alpha = 0; picture2._alpha = 0; picture.loadMovie(image[0], 1); picture1.loadMovie(image[1], 1); picture2.loadMovie(image[2], 1); desc_txt.text = description[0]; //picture_num(); } } 1)Можно ли подгрузить все фотки сразу в буффер, а не делать это по мере их вызова, и как? 2)Как добавить эффект на исчезновение фотографии , if(num_pic!=cur_num1 & num_pic!=cur_num2 & num_pic!=cur_num3) { picture._alpha = 0; //вот это строчка, он просто делает прозрачным мувик, и потом поднимает alpha уже с новой фотографией.. Как сделать ,не резкий скачок, а затухание? Заранее спасибо за ответы, буду благодарен любой критики.. Ибо хочу научиться писать красиво. |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 50
|
Чтобы фотки загружались сразу а не по мере вызова зайди в библиотеку (F11) --> контекстное меню фотки --> Linkage -->> отмечаешь Export for ActionScript и Export in first frame.
по поводу затухания, сделай уменьшение альфа в цикле вызываемом в setInterval например Поигравшись с условием цикла и временем вызова функции можно настроить плавность и время затухания |
|
|||||
|
Регистрация: Mar 2009
Сообщений: 49
|
Спасибо.
только по поводу подгрузки фотографий, их в библиотеке нету, т.к. они подгружаются через xml -динамически.. Можно ли как-нибудь кодом подключить? что то типо.. загрузить все фотографии в xml в буффер флеша и массив.? |
![]() |
![]() |
Часовой пояс GMT +4, время: 11:37. |
|
|
« Предыдущая тема | Следующая тема » |
|
|