Показать сообщение отдельно
Старый 17.12.2009, 17:50
deep70 вне форума Посмотреть профиль Отправить личное сообщение для deep70 Посетить домашнюю страницу deep70 Найти все сообщения от deep70
  № 5  
Ответить с цитированием
deep70
 
Аватар для deep70

Регистрация: Apr 2006
Адрес: Екатеринбург
Сообщений: 55
Отправить сообщение для deep70 с помощью ICQ
Пришлось вернуться к теме, т.к. скрипт потребовал усовершенствований.
Как выстроить картинки в один ряд по горизонтали - без интервала, например?
Картинки - все разные по ширине.

Сейчас код выгляди так:
Код AS1/AS2:
fn0 = '1.jpg'; fn1 = 'f7.JPG'; fn2 = 'P10105096.JPG'; fn3 = 'P10105097.JPG'; fn4 = 'g8.JPG'; fn5 = 'g12.JPG'; fn6 = 'g16.JPG'; fn7 = 'P1010095.JPG'; fn8 = 'P10105107.JPG'; fn9 = 'd11.JPG'; fn10 = 'd15.JPG'; fn11 = 'DSC00103.JPG'; fn12 = 'IMG_1851_.jpg'; fn13 = 'IMG_1856_.jpg'; fn14 = 'P101g0012.JPG'; fn15 = 'P10100g13.JPG'; fn16 = 'IMG_1859.jpg'; fn17 = 'IMG_1862.jpg'; fn18 = 'IMG_1864.jpg'; fn19 = 'k8.JPG'; fn20 = 'k22.JPG'; 
count = '21';
this.createEmptyMovieClip("image_mc",this.getNextHighestDepth());
var mclListener:Object = new Object();
var movieClips:Array = new Array();
var allowMove:Boolean = true ;
 
mclListener.onLoadInit = function(target_mc:MovieClip) {
 	movieClips.push(target_mc);
	target_mc.onRollOver = stopAll;
	target_mc.onRollOut = startAll;
	target_mc.onRelease = OpenFull;
	_root.mc._alpha=0;
};
	this.onEnterFrame = manageMovieClips; 
 
 
function manageMovieClips () {
	if (movieClips.length == num_img){
		if(_root.mc._alpha < 100){
			_root.mc._alpha+=5;
		}
	}
	if (allowMove) {
		for (i in movieClips) {
			var item:MovieClip = movieClips[i];
			var w:Number = item._width ;
			var h:Number = item._height ;
			//if (h<w or h<107){
				//index = 107*100/h;
				item._yscale = 107*100/h;
				item._xscale = 107*100/h;
				//var w:Number = item._width ;
				//var h:Number = item._height ;
			//}
			if (item._x < -w){
				item._x = num_img * ( w + 5 )-w;
			}
			if (movieClips.length == num_img){
					item._x -= 1;
			}
		}
	}
 
	else {
		delete this.onEnterFrame ; //остановка всего
	}
}
 
function stopAll () {
	for(i=0;i<=movieClips.length;i++){
		if(movieClips[i] != this){
			movieClips[i]._alpha = 80;
		}
	}
	if(i<=80){
		allowMove = false ;
	}
}
function startAll () {
	for(i=0;i<=movieClips.length;i++){
		if(movieClips[i] != this){
			movieClips[i]._alpha = 100;
		}
	}
	if (allowMove != true){
		allowMove = true;
		this.onEnterFrame = manageMovieClips; 
	}
}
function OpenFull () {
	var mySubstring:Number = this._name.substring(7,9);
	if(this._width > this._height){
		image_link = "javascript:OpenFile('images_gallery/index.php?img="+_root["fn"+mySubstring]+"',"+(this._width*3.5)+","+(this._height*3.5)+")";
	}else{
		image_link = "javascript:OpenFile('images_gallery/index.php?img="+_root["fn"+mySubstring]+"',"+(this._width*2.6)+","+(this._height*2.6)+")";
	}
	getURL (image_link); 
}
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
 
//num_img = _root.count;
num_img = this.count;
 
for (i=0; i<num_img; i++) {
	this.createEmptyMovieClip("clip_mc"+i,-i);
	var image_mcl:MovieClipLoader = new MovieClipLoader();
	image_mcl.addListener(mclListener);
//	fname = "../images_gallery/"+_root["fn"+i];
	fname = "../images_gallery/"+this["fn"+i];
	trace (fname);
	image_mcl.loadClip(fname,this["clip_mc"+i]);
	this["clip_mc"+i]._x = i*150; // здесь надо бы нормальные координаты
 
}
переменные [fn+i] и count генерятся в php, поэтому я их пока зарэмил и прописал руками.
Все картинки я уменьшаю пропорционально до 107px по высоте.
но это происходит после загрузки... и после расстановки картинок по горизонтали.
Соответственно, после уменьшения размеров картинки, они оказываются не рядом друг с другом.
Докучи, сейчас картинки стремятся к исходным размерам в каждом новым кадре
Как исправить ситуацию?

Добавлено через 1 час 4 минуты
Спасибо форуму за то что он есть!!
Ибо не задав вопроса, сам бы так и не додумался.
Решение найдено!
__________________
О добром, разумном, вечном...