Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 18.06.2008, 21:50
sweet_fighter вне форума Посмотреть профиль Отправить личное сообщение для sweet_fighter Найти все сообщения от sweet_fighter
  № 1  
Ответить с цитированием
sweet_fighter
 
Аватар для sweet_fighter

Регистрация: Apr 2008
Адрес: Kiev, Ukraine
Сообщений: 43
Отправить сообщение для sweet_fighter с помощью ICQ
Attention Movie Clip Path

В двух словах.
Есть мувиклип(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;
	}
};
елемент "hit" в (mc2) является еще одним мувиком. (ф-кция кнопки)
"Сапускаю, а оно ажамбех пашембе ешельве шайтанама..."
Отдельно все работает на ура, а вот как только появляется клип mc, который включает в себя mc2, то в mc етот елемент видно(hit), но он не работает и на мышку никак не реагирует...
Когда отдельно делаю без mc, то все работает... мне кажется я что-то напутал с путями... Прошу помочь =)
Заранее спасибо =)

p.s. http://kiev-extreme.com/test/mc.html - вот тут лежит отдельный от mc клип mc2, hit ето верхняя серая полоска реагирующая на мышку


Последний раз редактировалось sweet_fighter; 19.06.2008 в 00:08.
Старый 18.06.2008, 23:46
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А сами Вы протрейсить не сможете? ))
__________________
Reality.getBounds(this);

Старый 18.06.2008, 23:54
sweet_fighter вне форума Посмотреть профиль Отправить личное сообщение для sweet_fighter Найти все сообщения от sweet_fighter
  № 3  
Ответить с цитированием
sweet_fighter
 
Аватар для sweet_fighter

Регистрация: Apr 2008
Адрес: Kiev, Ukraine
Сообщений: 43
Отправить сообщение для sweet_fighter с помощью ICQ
ем... ну я пробывал
Код:
 
..
..
..
trace(this)
выводит _level0.instance3.instance7.
Насколько я понял ето самый верх, _level0...

Старый 19.06.2008, 01:09
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 4  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Просто у меня с Вашим кодом поведение одинаковое, что просто клип, что загруженный в другую свф. При пересечении rect1(2....6) с клипом хит, если мышь попадает в область их наложения, рект* растягивается. Так что не там ошибку ищете. Здесь не зря просят выкладывать проблемные файлы, удаляя из них всё, что к ошибке не относится. Помогает, знаете ли.

На всякий случай код моего mc.swf
Код:
mc = this.createEmptyMovieClip("mc", 0);
mc.loadMovie("mc2.swf")
У Вас ошибка в нем. И прежде всего разберитесь, как Вы загрузили внешний свф в безымянный клип (instance* говорит о том, что у клипа нет своего имени)
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 19.06.2008 в 01:16.
Старый 19.06.2008, 19:38
sweet_fighter вне форума Посмотреть профиль Отправить личное сообщение для sweet_fighter Найти все сообщения от sweet_fighter
  № 5  
Ответить с цитированием
sweet_fighter
 
Аватар для sweet_fighter

Регистрация: Apr 2008
Адрес: Kiev, Ukraine
Сообщений: 43
Отправить сообщение для sweet_fighter с помощью ICQ
Wolsh, спасибо, получилось =)
но окончательно заработало когда в mc2.swf прописал.
Код:
 
this._lockroot = true;
Да, кст, когда там this.createEmptyMovieClip то не работает, тоесть грузит, но елементы не раздвигаются... А когда _root.create... то работает отлично, но лежит на самом верху перекрывая другие елементы. Как зделать что бы остатся на своей глубине и не лезть в рут?

И еще один ламерский вопросик =)
Как етому
Код:
mc.loadMovie("mc2.swf")
присвоить четкие координаты? а то грузит в центр и все(...

так пробывал, не получается(
Код:
mc.onEnterFrame = function(){
	setProperty(mc, _x, 200);
	setProperty(mc, _y, 230);
}


Последний раз редактировалось sweet_fighter; 19.06.2008 в 19:55.
Старый 19.06.2008, 20:38
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 6  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
1) Рут был залочен еще в первом Вашем коде - вторая строчка, код вверху.
2) Несогласие Ваших _root и this говорит только о том, что Вы действительно грузите не в корень, а в какойто клип. Трейс помог бы, давай Вы имена клипам))))
3) Когда Вы создаете пустой мувик в Вашем коде, Вы не долго думая используете его onEnterFrame. Почему Вы думаете, что у mc это событие появится только после загрузки в него свф? Хотя чтото подобное я видел, и даже кажется у Мука)))) Но только подобное и с оговорками "никогда так не делать". Используйте нормальный MovieClipLoader, не пишите код на клипах и кнопках, не используйте кнопки вообще, следите чтобы графика была в точных координатах, в ноле, и будет Вам счастье. Только после загрузки контента можно будет указать размеры и координаты.
__________________
Reality.getBounds(this);


Последний раз редактировалось Wolsh; 19.06.2008 в 20:50.
Старый 20.06.2008, 01:04
sweet_fighter вне форума Посмотреть профиль Отправить личное сообщение для sweet_fighter Найти все сообщения от sweet_fighter
  № 7  
Ответить с цитированием
sweet_fighter
 
Аватар для sweet_fighter

Регистрация: Apr 2008
Адрес: Kiev, Ukraine
Сообщений: 43
Отправить сообщение для sweet_fighter с помощью ICQ
м-де... Wolsh
Я полностью все разобрал и собрал заново...
теперь другая проблема, в первом фрейме прописываю
Код:
this.attachMovie("mc", "mc", 100);
this.mc._x=400;
this.mc._y=200;
а в mc прописываю
Код:
this.createEmptyMovieClip("movieclip", 0);
movieclip._lockroot = true;
movieclip.loadMovie("mc2.swf");
movieclip.localToGlobal();
все грузит.
проблема:
При смене координатов мувика this.mc._x=400; this.mc._y=200;, оно их таки меняет, но вместе с тем елемент hit из подгружаемой свфки уползает вниз .
Я знаю что тут надо использовать localToGlobal, из относительных координат в абсолютные. Что я делаю не так?

Старый 20.06.2008, 08:19
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 8  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: 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);

Старый 20.06.2008, 16:21
sweet_fighter вне форума Посмотреть профиль Отправить личное сообщение для sweet_fighter Найти все сообщения от sweet_fighter
  № 9  
Ответить с цитированием
sweet_fighter
 
Аватар для sweet_fighter

Регистрация: Apr 2008
Адрес: Kiev, Ukraine
Сообщений: 43
Отправить сообщение для sweet_fighter с помощью ICQ
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;
	};
Но все же, можеш помочь разобратся, почему один елемент(hit) подгружаемой mc2.swf сползает вниз, а все остальные остаются там где надо?


Последний раз редактировалось sweet_fighter; 20.06.2008 в 16:57.
Старый 20.06.2008, 19:07
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 10  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вы готовы выложить исходник?
__________________
Reality.getBounds(this);

Создать новую тему Ответ Часовой пояс GMT +4, время: 00:48.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 00:48.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.