PDA

Просмотр полной версии : loadMovie и _height


knaydenov
26.11.2007, 17:48
Здравствуйте! У меня вопрос такой:
Я делаю чтото вроде фотогалереи и картинки в ней должны располагаться одна под другой не накладываясь друг на друга и плюс картинки могут быть разной высоты.
Значит загружаю при помощи loadMovie картинку в пустой мувиклип, размером 0х0, картинку вижу, после этого пытаюсь измерить высоту получившегося клипа, но все равоно высота остается 0.. что делать?:)

Fernando Costa
26.11.2007, 17:59
не могет быть, код в студию

knaydenov
26.11.2007, 18:22
function createTopic(id, Pos)
{
var MCx = "_root.MC.MC";
var txtField = ".txtFld";
var img = ".image";
_root.MC.attachMovie("blankTopic","MC"+id,Pos);
eval(MCx+id)._x=0;
var h,x;
eval(MCx+id+img).loadMovie(_root.image[id],1);

h=eval(MCx+(id-1)+".image._height");

y=eval(MCx+(id-1)+".image._y");


eval(MCx+id)._y=y+h;

eval(MCx+id+txtField).text = _root.description[id];


}


во такой вот код..)

maxx_tlt2
26.11.2007, 18:25
пользуй onLoaded

или сделай лучше так:
var mcl:MovieClipLoader = new MovieClipLoader();
var myL:Object = new Object();

myL.onLoadComplete = function() {
//ТВОИ ДЕЙСТВИЯ С ЗАГРУЖЕННЫМ РОЛИКОМ name1
};


mcl.loadClip("name.jpg", "name1");
mcl.addListener(myL);

knaydenov
26.11.2007, 18:39
вставил такое вот:


eval(MCx+id+img).onLoad = function():Void
{
trace("LOADED");
trace(eval(MCx+(id)+".image._height"));
}


Загружаем 2 картинки, выводит:

LOADED
0
LOADED
0
те после загрузки размер не изменился..

iNils
26.11.2007, 18:45
knaydenov, я не понимаю, неужели так сложно код отформатировать внутри тегов? Там же каша сплошная.

knaydenov
26.11.2007, 18:48
У меня подозрения что размеры клипа при загрузке не меняются в принципе, а в клип вставляется картинка, которая по размерам просто выходит за границы клипа.. в током случае можно зайти с др стороны, как перед загрузкой картинки посмотреть ее габариты??:)

telit
26.11.2007, 19:06
var mcl:MovieClipLoader = new MovieClipLoader();
var myL:Object = new Object();

myL.onLoadComplete = function(mc) {
trace(mc._height);
};


mcl.loadClip("name.jpg", "name1");
mcl.addListener(myL);

knaydenov
26.11.2007, 19:19
Если использовать вышеприведенный код, то он работает, но только если в loadClip target "_root", если же создать пустой мувиклип и назначить его таргетом, то выводит опять _height 0 вот так..:confused:

Molecula
26.11.2007, 19:25
mcl.loadClip("name.jpg", "name1");
"name1" - означает куда грузить контент, так сказать.
Путь може быть любой, хоть такой -
_mc['my_mc'+12]._cake
Вышеприведенный код должен лежать в корне сцены, т.е. в Руте.
Если же Вы его вызываете из мувика, который вложенный в другой, остановитесь! Перепише код так, что бы весь контроль был в первом кадре в руте, тогда у Вас не будет путанницы.

telit
26.11.2007, 19:27
this.createEmptyMovieClip("tester_mc", 1);
var mclListener:Object = new Object();
mclListener.onLoadInit = function(mc:MovieClip) {
trace(mc._height);
}
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("name.jpg", tester_mc);

tester_mc - клип в который грузим

knaydenov
26.11.2007, 19:32
Все именно так и сделал: Код в перовм кадре рута, в руте вставил мувик, пустой без кода и еще чего либо, назвал его ddd к примеру.

если в коде строчка такая

mcl.loadClip("name.jpg", "_root");

то все норм, выводи тразмер моей картинки
а вот если вот такая

mcl.loadClip("name.jpg", "_root.ddd");

то картинку загружает, но выводит что размер 0..
мистика:eek:

telit
26.11.2007, 19:39
var mclListener:Object = new Object();
mclListener.onLoadInit = function(mc:MovieClip) {
trace(mc._height);
}
var image_mcl:MovieClipLoader = new MovieClipLoader();
image_mcl.addListener(mclListener);
image_mcl.loadClip("http://mail.google.com/mail/help/images/logo.gif", _root.ddd);
всё работает!!!

knaydenov
26.11.2007, 19:39
2telit о_О!! )) Заработало, то что доктор прописал)) Пасиба огоромное всем!!:yahoo:

telit
26.11.2007, 19:42
;) np

stainwoortsel
08.01.2008, 05:37
Ребят, дело тут вовсе не в руте. Я проделывал ту же фишку с мувиком, который спрятан в мувике, который спрятан в мувике, который спрятан в мувике :)
В предыдущем коде заострим внимание на вот этом:
mclListener.onLoadInit = function(mc:MovieClip) {
trace(mc._height);
}

...и вот этом
image_mcl.loadClip("http://mail.google.com/mail/help/images/logo.gif", _root.ddd);

Фишка в том, что не обязательно грузить мув именно в _root.
Функция, которая у нас висит на перехвате onLoadInit ловит через параметр НОРМАЛЬНЫЙ мувик (я про mc:MovieClip), со всеми свойствами, к-рые, в добавок, можно смело изменять. А вот таргет, который указан в loadClip, не обладает всеми этими свойствами.

etc
08.01.2008, 14:05
stainwoortsel, отредактируйте свой пост и оформите код тегами .