![]() |
|
||||||||||
|
|||||
|
Регистрация: Oct 2008
Сообщений: 14
|
Заработало, спасибо. Дальше я уже разберусь.
Вот код для загрузки 12 кртинок в 2 ряда for (var i=1; i<=6; i++) {
this.createEmptyMovieClip("image_mc" + i, i);
this["image_mc" + i].loadMovie("main_img/"+i+".jpg");
this["image_mc" + i]._y = 180;
this["image_mc" + i]._x = 12 + i*107
}
for (var i=7; i<=12; i++) {
this.createEmptyMovieClip("image_mc" + i, i);
this["image_mc" + i]._y = 288;
this["image_mc" + i].loadMovie("main_img/"+i+".jpg");
this["image_mc" + i]._x = 12+(i-6)*107;
}
Да иеще например как достать эти клипы не работает Последний раз редактировалось radiofanat; 06.10.2008 в 22:04. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Да, замечания конечно есть))
Во-первых, запомните навсегда, что есть такое понятие как переменная, хранящая ссылку на объект. В данном примере this["image_mc" + i] - это клип. При его создании можно завести временную переменную, которая внутри цикла будет указывать на этот клип. Вот так: for (var i=1; i<=6; i++) {
var mc:MovieClip = this.createEmptyMovieClip("image_mc" + i, i);
mc.loadMovie("main_img/"+i+".jpg");
mc._y = 180;
mc._x = 12 + i*107;
mc.onRollOver = clipOver;
}
Во-вторых, и не так существенно, но можно ведь обойтись и одним циклом. Например, так: var cols:Number = 7 // нужное количество столбцов
var hspace:Number = 10 // горизонтальный просвет между картинками
var vspace:Number = 10 // вертикальный просвет между картинками
var img_width:Number = 180 // ширина картинок
var img_height:Number = 107 // высота картинок
////
for (var i=1; i<=6; i++) {
var mc:MovieClip = this.createEmptyMovieClip("image_mc" + i, i);
mc.loadMovie("main_img/"+i+".jpg");
var horder:Number = (i+cols)%cols;
horder = horder==0 ? cols-1 : horder-1
var vorder:Number = Math.ceil(i/cols)-1;
mc._x = horder*(img_width + hspace);
mc._y = vorder*(img_height + vspace);
mc.onRollOver = clipOver;
}
Как Вам уже правильно сказали, loadMovie нельзя использовать в таких случаях, когда с загружаемым изображением необходимо чтото сделать, т.е. практически никогда нельзя))))) Используют MovieClipLoader и все его замечательные события, позволяющие отслеживать процесс загрузки и ее окончание.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 07.10.2008 в 01:28. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 14
|
Спасибо, очень интересно. Но mc.onRollOver все равно не работает
даже курсор при наведении не меняется. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы читаете быстрее чем я пишу)))
Нижний абзац плиз.
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 14
|
Понял, пошел читать про MovieClipLoader.
|
|
|||||
|
Он неможет выдавать тоже самое, т.к. в вашем коде пока работает цикл, каждый раз создается клип на одной и той же глубине!
__________________
Убейте меня! |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 14
|
Цитата:
Опять запутался. может кто укажет что неправильно делаю #include "mc_tween2.as"
for (var i=1; i<=6; i++) {
crmovie(i);
}
function crmovie(i){
var home:MovieClip = this;
var mc:MovieClip = home.createEmptyMovieClip("mainClip" +i, home.getNextHighestDepth());
mc._x = 64+ i * 107;
mc._y = 235;
var mcc:MovieClip = mc.createEmptyMovieClip("clip" +i, mc.getNextHighestDepth());
mcc._x = Stage.width/2;
mcc._y = Stage.height/2;
var mcl:MovieClipLoader = new MovieClipLoader;
var mclListen:Object = new Object
mcl.addListener(mclListen);
mclListen.onLoadInit = center;
mcl.loadClip("main_img/"+i+".jpg", mcc);
function center(target:MovieClip) {
target._x = -target._width/2;
target._y = -target._height/2;
}
mclListen.onLoadComplete = function(mcc:MovieClip) {
mcc.onRollOver = grow;
mcc.onRollOut = shrink;
}
}
function grow() {
this.scaleTo (109 , 0.3, "linear");
}
function shrink() {
this.scaleTo (100 , 0.3, "linear");
}
Последний раз редактировалось radiofanat; 17.10.2008 в 00:02. |
|
|||||
|
Регистрация: Oct 2008
Сообщений: 14
|
не получается scale от центра картинки.
|
|
|||||
|
ветеран форума
|
Все трансформации происходят относительно точки регистрации мувиклипа.
Точка регистрации мувиклипа должна быть в центре для такого случая. Это либо при создании мувика указывать, либо перед скалированием контент внутри мувиклипа смещать вверх-влево на половину высоты и ширины мувиклипа соответсвенно.
__________________
trace("Остановите Землю, я сойду!!!"); |
|
|||||
|
Регистрация: Jan 2006
Адрес: Novosibirsk
Сообщений: 353
|
createEmptyMovieClip("box_pic", 0);
box=new Object()
box.path=box_pic
box_pic._x=50
box_pic._y=50
st=0
var listener:Object = new Object();
var mcLoader:MovieClipLoader = new MovieClipLoader();
mcLoader.addListener(listener);
for(i=1;i<=5;i++)
{for(j=1;j<=5;j++) {
st++
box.path.createEmptyMovieClip("pic_box"+st, st);
box_name=box.path["pic_box"+st]
mcLoader.loadClip("img"+st+".jpg",box_name);
box_name._x=70*i
box_name._y=70*j
box_name._xscale=15
box_name._yscale=15}}
listener.onLoadInit = function (mc:MovieClip) {
if(mc)
{init(mc)}}
function init(mc)
{mc.onPress=function()
{trace(this)}
mc.onRollOver =function()
{trace(this)}}
правда без скале по центру |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|