PDA

Просмотр полной версии : как сделать проявку картинки???


Sylkoga
08.05.2007, 01:46
проблема вот в чем! есть 8 картинок в папке! мне нада чтобы они грузились не все сразу, а друг за другом. и как только первая загрузится она должна проявлятся! я сделал 8 мувиклипов в которые я запихнул пустой мувик а на ActionScript написал


i=1;
loadMovie("Image"+i+".jpg",_root["btn"+i].Image);
if (i <= count) {
_root["btn"+i].Image._x = 0;
_root["btn"+i].Image._y = 0;
i++;
Load_Image2();
}


при таком коде они грузятся все сразу и не проявляются! как сделать?

пытаюсь сделать так


function Load_Image2() {
var image:MovieClip = _root["btn"+i].createEmptyMovieClip("image", _root["btn"+i].getNextHighestDepth());
image.loadMovie("Image"+i+".jpg");
if (i <= count) {
image.onLoad = function() {
_root["btn"+i].image._x = ((105 / 2) - (_root["btn"+i].image._width / 2));
_root["btn"+i].image._y = ((105 / 2) - (_root["btn"+i].image._height / 2));
i++;
Load_Image2();
}
}
}


но он не реагирует на onLoad! в чем ошибка?

this.create
08.05.2007, 03:05
Подход не верный. Вам нужно использовать класс MovieClipLoader (прочитайте про него в справке flash). У этого класса есть событие onLoadComplete которое срабатывает по окончании загрузки. Вы сможете его использовать для начала новой загрузки.


но он не реагирует на onLoad! в чем ошибка?
Это не тот onLoad о котором вы подумали. Метод класса MovieClip onLoad выполняет другие функции.

Aziz Zaynutdinoff
08.05.2007, 03:21
У этого класса есть событие onLoadComplete которое срабатывает по окончании загрузки

onLoadInit, если точнее :)

this.create
08.05.2007, 03:29
onLoadInit, если точнее :)
Я их всегда путаю. Но к картинке мы вроде не будем обращаться, так что onLoadInit вроде не подходит.

Sylkoga
08.05.2007, 12:47
так тоже ничего не происходит!


function Load_Image2() {
i++;
var image:MovieClip = _root["btn"+i].createEmptyMovieClip("image", _root["btn"+i].getNextHighestDepth());
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(this);
_root["btn"+i].image._alpha = 0;
imageLoader.loadClip("Image"+i+".jpg", _root["btn"+i].image);
_root["btn"+i].image._x = ((105 / 2) - (lv["x"+i] / 2));
_root["btn"+i].image._y = ((105 / 2) - (lv["y"+i] / 2));
}
function onLoadComplete(btn:MovieClip) {
while (_root["btn"+i].image._alpha < 100) {
_root["btn"+i].image._alpha = image._alpha + 10;
}
if (i != count) {
Load_Image2();
}
}


где ошибка? помогите плз! очень нада!

вот при таком коде они загружаются друг за другом, но не проявляются! хотя в debugere alpha увеличивается! почему картинка не проявляется??!


function Load_Image2() {
i++;
var image:MovieClip = _root["btn"+i].createEmptyMovieClip("image", _root["btn"+i].getNextHighestDepth());
var imageLoader:MovieClipLoader = new MovieClipLoader();
imageLoader.addListener(this);
_root["btn"+i].image._alpha = 0;
imageLoader.loadClip("Image"+i+".jpg", _root["btn"+i].image);
_root["btn"+i].image._x = ((105 / 2) - (lv["x"+i] / 2));
_root["btn"+i].image._y = ((105 / 2) - (lv["y"+i] / 2));
}
function onLoadComplete(btn:MovieClip) {
while (_root["btn"+i].image._alpha < 100) {
_root["btn"+i].image._alpha = _root["btn"+i].image._alpha + 10;
}
if (i != count) {
Load_Image2();
}
}

Kikasso
08.05.2007, 14:28
А причем тут while? И как-то дико у вас onLoadComplete написан.
Картинки вообще видны?

Chas
08.05.2007, 14:45
неа. так не катит.
получается, что на событие успешно загружено ты начинаешь в цикле увеличивать альфу изображения до 100. но все изменения графики в фрейме отображаются только после выполнения AC этого фрейма.
т.е. в цикле ты поднял альфу до 100, и только потом отобразил.

тебе нужно что-то типа:

function onLoadComplete (mov){
mov.onEnterFrame=function (){
if (this._alpha<100) this._alpha+=10;
else this.onEnterFrame=null;
}
}

Sylkoga
08.05.2007, 18:47
спс! сделал и все ок, когда запускаю из папки! стоит поставить на сайт картинки не грузятся! как такое может быть?

Sylkoga
08.05.2007, 22:46
ну кто-нибудь подскажет почему такое происходит?

Chas
08.05.2007, 22:52
как говорит iNils, мы не телепаты ;-)

Sylkoga
09.05.2007, 00:45
я уже разобрался! проста сервак на линуксе и по этому там большие и маленькие буквы различаются а я написал jpg во флеше, а нада было JPG!