Ефект на Флаш галерия

freegafo

Registered
Здр.
http://creative.gettyimages.com/source/ListingService/SearchAS.aspx
(щракнете в/у картинката)
опитвам се на напрявя нещо по добно......

В момента съм на сменящите се картинки.....
Но не ми харесва начина по който съм успял да го направя......
Ето кода който използвам
Код:
var photos:XML = new XML ();
var i:Number = 0;
photos.ignoreWhite = true;
photos.onLoad = function(suscess)
	{
		xmlNode = this.firstChild;
		
		url = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
		//photo_mc._alpha = 50;
		photo_mc.loadMovie(url);
		
	}
photos.load("photos.xml");

  //////////////////////////////////////////////////////////
 ///////////////   TIMER  /////////////////////////////////
//////////////////////////////////////////////////////////
var Time:Number = 1000;
count = function(timer)
	{
		Time-- ;
		TimeT.text = Time;
		if (Time == 0)
			{
				i++;
				if (i >= xmlNode.childNodes.length)
					{
						i = 0;
					}
				photo_mc._alpha=0;
				photos.onLoad(success);
				Time = 1000;
			}
			
	if (photo_mc._alpha < 100)
	{
		photo_mc._alpha += 1;
	}
	text_txt.text = photo_mc._alpha;
	}
timer = setInterval(count, 10); 




///////////////////////////////////////2/////////////////////////////////////////////////



var photos:XML = new XML ();
var i:Number = 0;
photos.ignoreWhite = true;
photos.onLoad = function(suscess)
	{
		xmlNode = this.firstChild;
		
		url = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
		photo_mc._alpha = 50;
		photo_mc.loadMovie(url);
		if (photo_mc._alpha != 100)
			{
				var FadeTime = 10;
				FadeTimeFunction = function(time)
				{	
					if (photo_mc._alpha != 100 and photo_mc._alpha <= 100)
					{
					FadeTime--;
					text_txt.text = photo_mc._alpha;
					}
					if (FadeTime == 0)
					{
						photo_mc._alpha += 10; 
						clearInterval(fade); 
						FadeTime = 10;
					}
				}  
			}fadecounter = setInterval(FadeTimeFunction, 0.1);
	}
photos.load("photos.xml");

  //////////////////////////////////////////////////////////
 ///////////////   TIMER  /////////////////////////////////
//////////////////////////////////////////////////////////
var Time:Number = 1000;
count = function(timer)
	{
		Time-- ;
		TimeT.text = Time;
		if (Time == 0)
			{
				i++;
				if (i >= xmlNode.childNodes.length)
					{
						i = 0;
					}
				photos.onLoad(success);
				Time = 1000;
			}
	}
timer = setInterval(count, 10);

Казаха ми че трябва да сложа setInterval в функцията photos.onLoad... ама нещо се бъгва тогава и започва сле време да сменя супер бъро картинките......

Та искам да направия картинките да се сменят както е в они сайт.... по тои начин нещо не ми харесва особенно

Благодаря предварително......

//редактирано заглавие
[b13]savage
 
Вместо да слагаш сетИнтервал защо не сложиш един туйн :
Код:
tween();
function tween() {
easeType = mx.transitions.easing.None.easeNone;
asd = new mx.transitions.Tween(a_mc, "_alpha", easeType, 100, 0, 2, true);
};
a_mc е името на анимираното клипче. Можеш да добавиш и ефекти (да забързва, да забавя, дали да е това избързване в началото или пък в края на анимирането .. etc) ..
Разбра ли :) ?
 
Благодаря ти.....

Ще те помоля да ми обясниш по подробно, защото не можах да се оправя.... :eek: ....
 
Здрасти ! Нека направим така - аз сега ще ти обясня какво се трябва да направиш, пък ако не успееш и ще го напиша (най-добре е сам да се научиш).
Има много начини, по които може да го направиш. Направи таймер и при всяко стигане на 1000 (например) да пуска туйин-а, а след като свърши туйна да сменя снимката.
Ок ? :)
 
Здр.
Успях да го направя.... така става супер!
Искам да те попитам още две неща:
1) как да направя коагато идва новата снимка да се зарежда в/у старата, като в същото време старата ибледнява отзад...

2)Как мога да направя на флаш картинките които зареждам да са с примерно 10 пиксела бял кант от всиччки страни.... (имам в предвид без да го слагам на някаква графична програма че ще се отвинтя ако са много картинките)

Благодаря.... :?:
 
Ем мисля си (но за да съм сигурен трябва и да го пробвам, нямам възможност днес, чак утре).
Пробвай да сложиш на един лейър една бяла рамка, тя трябва да ти свърши работа (или си я напиши с АS).
За това със снимките .. :? ако те разбрах - настрой при определен номер една да е FadeOut единия пик, а другия да е FadeIn.
Ако не върви на никъде чак утре ще съм он, сори.
Поздрави и лека вечер :)
 
Здр.

Аз зарейдам картинките на един и сащи мови клип... за да дам на еднта Fade Out трибва ли да са на два клипа за да могат да се застъпят една върху друга.....

А как да напиша рамката на AS
Благодаря
 
Ето какво надрасках за рамчица :
Код:
var savage:MovieClip = this.createEmptyMovieClip ("savage",this.getNextHighestDepth());
draw();
function draw() {
savage.lineStyle (10, 0, 100);
savage.lineTo (0, Stage.height);
savage.lineTo (Stage.width, Stage.height);
savage.lineTo (Stage.width, 0);
savage.lineTo (0, 0);
}
Можеш да направиш един moovie clip, който да съдържа ефекта. Така ще имаш два - единият зарежда, а в другия е ефекта на сменянето. При зареждане пускаш ефекта от 2рия _mc .. Хитро, но не е лесно :)
.. имам подръка една доста добре направена галерийка, ако искаш я виж тука.

savage.lineStyle (10, 0, 100); - от този ред определяш какъв да е вида на линията :)
 
Благодаря ти......

Докато я правя тази галерия въпросите ми никнат като гъби :eek: ....

Вчера написах една функция която оразмерява изображението ако е по голямо но получих два бъга:

1) не хваща първата картинка, ако парвата картинка е по голяма не се вкл. функцията.
-----------------------------------
втория бъг го хванах при икл. функция
-----------------------------------
2) когато зареждам изображе в дадения мулви клип и да речем че е с размери 820х600 то го зарежда като 867_582 или нещо подобно...за да видя колемината на клипа ползвам movie_mc._height & movie_mc._width


:idea:

Благодаря
 
Нормално е да никнат много въпроси.
Лошото е, че не виждам причина да пропуска първото изображение, или пък да не прави точно зададени _width & _height . (тоест, няма логичекса причина това да става, явно някъде из кода си объркал :roll: )
Ти защо не ползваш готовия loader UI (компонент). Мисля, че ще ти е доста по лесно.
Поздрави :)
 
Здр.
ето ми галерийката http://web-tourist.net/project/freegafo/gallery.html смакни я и я преименувай на .rar.... Ако може да ми кажеш защо картинките не се зареждат с нормалната големина и ако може да ми кажеш също така защо на първата картинка като активирам функцията rеsize не хваща първата картинка
 
Картинките ги отвара с реалната им големина и ги зарежда в клипчето. Проблема е, че това че се намират в клип с определен размер, явно не им пречи да се виждат и извън него. Видях че си слагал маска .. да, ако сложиш маската както трябва ще се вижда само определената от теб големина. Всички картинки ги зарежда така, не съм забелязал да има някаква разлика при първа/втора/etc.
Как да решиш проблема - лично аз ползвам готово компонентче - loader . Чудно ми е защо и ти не го ползваш - в Component Inspektor има опцийка за автоматичен resize. Ползвай и ти :p
 
Можеш ли да ми дадеш малко повече информация как да иползвам готовото компонентче - loader, и автоматичния resize

Благодаря Много
 
Благодаря, с Loader-а се оправих.....

Изникна ми обаче един проблем... когато се зареждат картинките при бавен интернет става бавно (то това е логично), проблема е че вече зареждана картинка като се отвори пак се зарежда на ново.... Как мога да направя така че един път заредена картинката да си се пази в някакъв кеш... и да се зарежда моментално, а не да се чака отново.... :(
 
Тук вече не мога много да ти помогна.
Аз все си мисля, че флаш се зарежда нейде из виртуалната памет и щом браузър отвори нещо то си се кешира автоматично.
Едно от решенията, който мога аз да ти предложа е да сложиш прелоудърчета :p , а другото е да зареждаш external флаш файлове (.swf), така те ща са кеширани и няма да им а нужда да се зареждат пак (...така си мисля...)..но на дали си струва усилията.
Лек ден и поздрави за бързия напредък :)
 
Благодаря....
Имам още един вапрос... искам да заредя текст отстрани до всяко клипче което зареждам така
:
var photos:XML = new XML();
var i:Number = 0;
var Load:Boolean = false;
photos.ignoreWhite = true;
photos.onLoad = function(suscess) {
xmlNode = this.firstChild;
url = xmlNode.childNodes.childNodes[0].firstChild.nodeValue;
description = xmlNode.childNodes.childNodes[1].firstChild.nodeValue;
photo_mc.contentPath = url;
tween();
function tween() {
easeType = mx.transitions.easing.None.easeNone;
asd = new mx.transitions.Tween(photo_mc, "_alpha", easeType, 0, 100, 2, true);
}
};
photos.load("photos.xml");

ама не можах да го направя. :( Ако не ме разбираш какво точно искам да направя ще ти го покажа с картинки.. извинявай че така бързо обяснявам ама в момента малко бързам....

Благодаря !!!!! :wink:
 
Можеш направо да ми пратиш .фла файла на savage309(at)abv.bg . Аз съм малко болен, но се надявам да имам време да го погледна и да видя дали мога да ти помогна :wink:
 
Пиша нов пост за да го забележиш :)
До колкото разбрах (а то не е много :) ) искаш да напишеш текст с AS. Слагаш на фрейм това :
Код:
this.createTextField ("IME", this.getNextHighestDepth(), _x, _y, width, height);
където IME е името на новсъздаденото текстово поле, след това е параметъра оказващ дълбочината , _x - е координата по хикс, _y е по игрек, width е ширината, heigth е височината.
Ето ти и пример :
Код:
this.createTextField ("IME", this.getNextHighestDepth(), 200, 200, 50, 20);
IME.html = true
IME.htmlText = "<U>Savage rlz</U>"
Това ли ти трябваше :(
 

Горе