![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
Вопрос открыт по прежнему, проблем с подгрузкой извне - нет, проблема в ссылке. |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
Я конечно уже наглею, но все же посмотри мой пример,я в AS так не рублю сильно у мя попроще немного...... может с моим можно , что-то сделать? Последний раз редактировалось repz; 06.11.2006 в 00:15. |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 repz:
Я постараюсь написать. Только сразу говорю, будет сложно... Наверное...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
Буду благодарен... |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
Вот... Может не очень красиво...
var currentMovie:Number = 1;
var thumbsNumber:Number = 4;
var containerClipName:String = "container";
var containerLeft:Number = 20;
var containerTop:Number = 20;
var thumbsBaseName:String = "resources/pic";
var thumbsExtension:String = "jpg";
var thumbsClipBaseName:String = "thumb";
var thumbsLeft:Number = 0;
var thumbsTop:Number = 200;
var thumbsScale:Number = 50;
var thumbsInterval:Number = 10;
var bigsBaseName:String = "resources/big";
var bigsExtension:String = "jpg";
var bigLeft:Number = 0;
var bigTop:Number = 0;
var zoomedClipName:String = "zoomed";
var zoomedLeft:Number = 0;
var zoomedTop:Number = 0;
var zoomedScale:Number = 100;
var currentThumbX:Number = thumbsLeft;
var thumbsLoaded:Number = 0;
var thumbSelected:Number = 0;
var containerClip:MovieClip = this.createEmptyMovieClip(containerClipName, this.getNextHighestDepth());
containerClip._x = containerLeft;
containerClip._y = containerTop;
var clipsLoader:MovieClipLoader = new MovieClipLoader();
var clipsLoaderListener:Object = new Object();
clipsLoader.addListener(clipsLoaderListener);
loadNewMovie(currentMovie);
clipsLoaderListener.onLoadInit = function(targetClip:MovieClip)
{
thumbsLoaded++;
targetClip._xscale = targetClip._yscale = thumbsScale;
currentThumbX += targetClip._width + thumbsInterval;
targetClip.id = currentMovie;
loadNextMovie();
targetClip.onRollOver = function()
{
this.setTransformRGBA(100, 110, 100, 0, -100, 0, 100, 0);
};
targetClip.onRollOut = targetClip.onReleaseOutside = function()
{
this.resetTransformRGBA();
};
targetClip.onRelease = function()
{
if (this._parent[zoomedClipName] != undefined)
{
this._parent[zoomedClipName].removeMovieClip();
}
thumbSelected = this.id;
var zoomedLoader:MovieClipLoader = new MovieClipLoader();
var zoomedLoaderListener:Object = new Object();
zoomedLoader.addListener(zoomedLoaderListener);
var zoomedName:String = thumbsBaseName + this.id + "." + thumbsExtension;
var zoomedContainerClip:MovieClip = this._parent.createEmptyMovieClip(zoomedClipName, this._parent.getNextHighestDepth());
zoomedContainerClip._x = zoomedLeft;
zoomedContainerClip._y = zoomedTop;
zoomedLoader.loadClip(zoomedName, zoomedContainerClip);
zoomedLoaderListener.onLoadInit = function(targetZoomedClip:MovieClip)
{
targetZoomedClip.id = thumbSelected;
targetZoomedClip.onRelease = function()
{
if (thumbsLoaded == thumbsNumber)
{
var parentClip:MovieClip = this._parent;
for (thumbsIndex:Number = 1; thumbsIndex <= thumbsNumber; thumbsIndex++)
{
var thumbToDeleteName:String = thumbsClipBaseName + thumbsIndex;
parentClip[thumbToDeleteName].removeMovieClip();
}
var bigLoader:MovieClipLoader = new MovieClipLoader();
var bigName:String = bigsBaseName + this.id + "." + bigsExtension;
this.removeMovieClip();
bigLoader.loadClip(bigName, parentClip);
}
};
targetZoomedClip.onRollOver = function()
{
this.setTransformRGBA(100, 110, 100, 0, -100, 0, 100, 0);
};
targetZoomedClip.onRollOut = targetClip.onReleaseOutside = function()
{
this.resetTransformRGBA();
};
};
};
}
clipsLoaderListener.onLoadError = function(targetClip:MovieClip, errorCode:String)
{
targetClip.removeMovieClip();
loadNextMovie();
}
function loadNewMovie(movieNumber:Number)
{
var movieName:String = thumbsBaseName + movieNumber + "." + thumbsExtension;
var movieContainerClipName:String = thumbsClipBaseName + movieNumber;
var movieContainerClip:MovieClip = containerClip.createEmptyMovieClip(movieContainerClipName, containerClip.getNextHighestDepth());
movieContainerClip._x = currentThumbX;
movieContainerClip._y = thumbsTop;
clipsLoader.loadClip(movieName, movieContainerClip);
}
function loadNextMovie()
{
currentMovie++;
if (currentMovie <= thumbsNumber)
{
loadNewMovie(currentMovie);
}
}
MovieClip.prototype.setTransformRGBA = function (ra, rb, ga, gb, ba, bb, aa, ab)
{
if (arguments.length < 8)
{
return false;
}
var x:Number = 0;
while (x < arguments.length)
{
if (isNaN(arguments[x++]))
{
return false;
}
}
if (ra <= 100 && ga <= 100 && ba <= 100 && aa <= 100 && ra >= -100 && ga >= -100 && ba >= -100 && aa >= -100 && rb <= 255 && gb <= 255 && bb <= 255 && ab <= 255 && rb >= -255 && gb >= -255 && bb >= -255 && ab >= -255)
{
var thisColor:Object = {ra:ra, rb:rb, ga:ga, gb:gb, ba:ba, bb:bb, aa:aa, ab:ab};
var col:Color = new Color(this);
col.setTransform(thisColor);
return true;
}
else
{
return false;
}
}
MovieClip.prototype.resetTransformRGBA = function()
{
var thisColor:Object = {ra:100, rb:0, ga:100, gb:0, ba:100, bb:0, aa:100, ab:255};
var col:Color = new Color(this);
col.setTransform(thisColor);
}
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 repz:
Ой, извините, я не хочу разбираться в вашем коде. Я посмотрел, очень уж у вас всё просто. Я не говорю, что нужно обязательно моим путём идти, но и по-вашему нормально не получится... Смотрите, в чём проблема... Мы загружаем извне картинки на сцену и делаем из них маленькие такие сабнейлы... Для этого нужен один обьект MovieClipLoader... Потом нам нужно щёлкнуть на маленькую картинку и получить большую... duplicateMovieClip не пройдёт, потому что флешка была загружена извне. Поэтому придётся снова грузить ту же флешку, что и для маленькой картинки, но уже не уменьшать её. Если предположить, что пользователь может щёлкнуть на первом сабнейле, когда ещё не загружены все остальные, нам понадобится ещё один MovieClipLoader. Ну, мне так кажется... Потом, если предположить, что то же самое произойдёт с увеличенным мувиклипом (нажатие мышью на нём), то нам понадобится ещё один MovieClipLoader. Я вот точно не знаю, может ли MovieClipLoader параллельно загружать флешки в несколько клипов. Но даже если может, это всё равно не слишком сильно уменьшит код. Если не может, но вы захотите всё реализовать одним MovieClipLoader, то придётся вводить переменные-флаги и ограничивать пользователя в действиях, ожидая окончание загрузки... Проще говоря, врядли получится нормально обойтись тем количеством строк, что у вас в коде...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
Спасибо за помощь, сделаю кнопки к каждой маленькой картинки.... |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
2 repz:
Кнопки? В смысле символы button в библиотеке? о_0 Вас что, действительно так сильно напугал мой код? Но ведь проще действительно врядли выйдет. У вас в задаче целых 3 последовательных загрузки извне... Сложно ожидать, что всё это будет так просто работать и займёт пару строк кода...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
|
|||||
|
Регистрация: Mar 2006
Сообщений: 425
|
2 Хемуль:
В коде вроде разобрался, кое что осталось не понятным, лишнее удалил..., но у меня не три картинки, а 16 и их размещение вызывает у меня большие вопросы в смысле кода.... P.S. Нет просто под каждым полем с картинкой - мувик кнопка,который выгружает текущий мувик и на его место загружает другой. Последний раз редактировалось repz; 06.11.2006 в 00:32. |
|
|||||
|
Квач
Регистрация: Sep 2006
Адрес: Украина, Киев
Сообщений: 1,526
|
У меня в коде количество картинок, которые нужно загружать регулируется переменной thumbsNumber.
По поводу кнопки под полем с картинкой... Ну в обработчике zoomedLoaderListener.onLoadInit моего кода можно просто создать/загрузить кнопку и назначить для неё обработчик onRelease...
__________________
Да не нужно тебе читать документацию по Flash и AS от Adobe - ты слишком умён для этого |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:16. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|