![]() |
|
||||||||||
|
|
|
|||||
|
В двух словах.
Есть мувиклип(mc) он грузит в себя другой мувик(mc2). В мувике(mc2) прописана некая функция для работы, допустим, с мышкой ->
stop();
this._lockroot = true;
speed = 10;
initial_width = 100;
target_width = 450;
sp = rect1._x;
this.createEmptyMovieClip("emptymc", 0);
emptymc.onEnterFrame = function() {
for (i=1; i<=6; i++) {
if (_root.hit.hitTest(_root._xmouse, _root._ymouse, true)) {
if (_root["rect"+i].hitTest(_root._xmouse, _root._ymouse, true)) {
new_x = (_root.sp-(75*(i-1)))-rect1._x;
rect1._x += new_x/speed;
n_width = target_width-_root["rect"+i]._width;
_root["rect"+i]._width += n_width/speed;
} else {
n_width2 = initial_width-_root["rect"+i]._width;
_root["rect"+i]._width += n_width2/speed;
}
} else {
new_x = _root.sp-rect1._x;
rect1._x += new_x/(speed+50);
n_width2 = initial_width-_root["rect"+i]._width;
_root["rect"+i]._width += n_width2/(speed-1);
}
_root["rect"+(i+1)]._x = _root["rect"+i]._x+_root["rect"+i]._width;
_root["movie"+i]._x = _root["rect"+i]._x-1;
}
};
"Сапускаю, а оно ажамбех пашембе ешельве шайтанама..." ![]() Отдельно все работает на ура, а вот как только появляется клип mc, который включает в себя mc2, то в mc етот елемент видно(hit), но он не работает и на мышку никак не реагирует... Когда отдельно делаю без mc, то все работает... мне кажется я что-то напутал с путями... Прошу помочь =) Заранее спасибо =) p.s. http://kiev-extreme.com/test/mc.html - вот тут лежит отдельный от mc клип mc2, hit ето верхняя серая полоска реагирующая на мышку Последний раз редактировалось sweet_fighter; 19.06.2008 в 00:08. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
А сами Вы протрейсить не сможете? ))
__________________
Reality.getBounds(this); |
|
|||||
|
ем... ну я пробывал
выводит _level0.instance3.instance7. Насколько я понял ето самый верх, _level0... |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Просто у меня с Вашим кодом поведение одинаковое, что просто клип, что загруженный в другую свф. При пересечении rect1(2....6) с клипом хит, если мышь попадает в область их наложения, рект* растягивается. Так что не там ошибку ищете. Здесь не зря просят выкладывать проблемные файлы, удаляя из них всё, что к ошибке не относится. Помогает, знаете ли.
На всякий случай код моего mc.swf У Вас ошибка в нем. И прежде всего разберитесь, как Вы загрузили внешний свф в безымянный клип (instance* говорит о том, что у клипа нет своего имени)
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 19.06.2008 в 01:16. |
|
|||||
|
Wolsh, спасибо, получилось =)
но окончательно заработало когда в mc2.swf прописал. Да, кст, когда там this.createEmptyMovieClip то не работает, тоесть грузит, но елементы не раздвигаются... А когда _root.create... то работает отлично, но лежит на самом верху перекрывая другие елементы. Как зделать что бы остатся на своей глубине и не лезть в рут? И еще один ламерский вопросик =) Как етому присвоить четкие координаты? а то грузит в центр и все(... так пробывал, не получается( Последний раз редактировалось sweet_fighter; 19.06.2008 в 19:55. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
1) Рут был залочен еще в первом Вашем коде - вторая строчка, код вверху.
2) Несогласие Ваших _root и this говорит только о том, что Вы действительно грузите не в корень, а в какойто клип. Трейс помог бы, давай Вы имена клипам)))) 3) Когда Вы создаете пустой мувик в Вашем коде, Вы не долго думая используете его onEnterFrame. Почему Вы думаете, что у mc это событие появится только после загрузки в него свф? Хотя чтото подобное я видел, и даже кажется у Мука)))) Но только подобное и с оговорками "никогда так не делать". Используйте нормальный MovieClipLoader, не пишите код на клипах и кнопках, не используйте кнопки вообще, следите чтобы графика была в точных координатах, в ноле, и будет Вам счастье. Только после загрузки контента можно будет указать размеры и координаты.
__________________
Reality.getBounds(this); Последний раз редактировалось Wolsh; 19.06.2008 в 20:50. |
|
|||||
|
м-де... Wolsh
Я полностью все разобрал и собрал заново... теперь другая проблема, в первом фрейме прописываю а в mc прописываю this.createEmptyMovieClip("movieclip", 0);
movieclip._lockroot = true;
movieclip.loadMovie("mc2.swf");
movieclip.localToGlobal();
проблема: При смене координатов мувика this.mc._x=400; this.mc._y=200;, оно их таки меняет, но вместе с тем елемент hit из подгружаемой свфки уползает вниз .Я знаю что тут надо использовать localToGlobal, из относительных координат в абсолютные. Что я делаю не так? ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
1) Если Вы не будете использовать MovieClipLoader, определяя момент окончания загрузки внешнего свф, все ваше шаманство пойдет прахом, как только файлы окажутся в сети а не на локале с шиной 1066 и памятью 2 гб. Я не шучу, проект просто не будет работать. Учтите, что после загрузки свф в movieclip всё, что Вы о нем писали просто забудется, потому что это уже совсем другой клип. Можете проверить на симуляторе загрузки)
2) localToGlobal() - звучит многообещающе, правда? Только стоит прочитать хелп и выяснить, как это работает. Прежде всего, создается объект с двумя свойствами х и у, назовем его пойнт. Это просто пара чисел. Но без неё localToGlobal() это как gotoAndPlay() без номера кадра. Что Вы переводите в глобальные координаты? И зачем? Этот метод только СЧИТАЕТ, он ничего не двигает и не меняет никаких свойств, кроме этой пары чисел в объекте пойнт. То есть Вы задаете point = {x:10, y:10}, делаете movieclip.localToGlobal(point); и в Вашем point новые значения х и у, показывающие, где в координатах рута находится точка, которая в movieclip находится в координатах (10,10). Если movieclip в руте имеет координаты (100,100), то в пойнте будут цифры 110,110. Вы можете их узнать как point.х и point.у И только!
__________________
Reality.getBounds(this); |
|
|||||
|
Wolsh, спасибо
.Я немного разобрался.
this.createEmptyMovieClip("clipContainer", 2);
var mclLoader:MovieClipLoader = new MovieClipLoader();
var oListener:Object = new Object();
mclLoader.addListener(oListener);
this.mclLoader.loadClip("mc2.swf", clipContainer);
oListener.onLoadInit = function(target_mc:MovieClip) {
target_mc._x = 138;
target_mc._y = 270;
};
Последний раз редактировалось sweet_fighter; 20.06.2008 в 16:57. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вы готовы выложить исходник?
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:33. |
|
|
« Предыдущая тема | Следующая тема » |
|
|