Просмотр полной версии : как заставить мувик нажиматься и таскаться
osa 2413
08.06.2007, 13:53
Делаю во флешке карту, интерактивную, с возможностью получать информациею по географическим объектам через щелчок по ним. Также карту можно таскать "рукой". Объекты карты делаю в отдельных клипах, а потом собираю в одиню. Так вот, потом, этот конечный клип с завершенной картой его или таскать можно, или стучать по нему. Как бы зделать его так, чтобы и то и другое можно было бы?
т.е. надо таскать общий, а кликать на внутренних?
проблема в том, что любое из "кнопочных" событий (onPress, onRelease.. etc), определенных на внешнем,перекрывает все внутренние..
как вариант hitTest'ом смотреть на кого приходится клик/нажатие и в зависимости от этого предпринимать те или иные действия..
в самом простом раскладе:
function onPress(){
for(var i in this)
//смотрим не попало ли на кого из внутренних
if(this[i].hitTest(_root._xmouse,_root._ymouse,true)){
trace(this[i]);//действия по клику на внутренних мувиках
return;
}
this.startDrag();
}
function onRelease(){
stopDrag();
}
как другой вариант: в карте есть клип bg и куча кнопок.
bg.onPress = function(){this._parent.startDrag();}
bg.onRelease = bg.onReleaseOutside = function(){ stopDrag(); }
osa 2413
08.06.2007, 15:41
а есть какая нибудь команда чтоб вызвать событие на мувике кодом, к примеру, как будто его нажали
osa 2413
08.06.2007, 16:00
например, чего то не работают таким образом команды
например мувик.RollOver() не работает, я ксатате на flash mx пишу может там ограничения какие то?
osa 2413
08.06.2007, 16:21
мне надо не "помать нажатие" а его наоборот справоцировать, чтобы было "как при нажатии" и т.п.
т.е. пишу мувик.МувикНажали(), вместо мувик.КогдаНажалиМувик()
Тогда пишите функцию для этого.
osa 2413
08.06.2007, 17:19
а разве у мувика может быть функция?
mc.onPress = function(){ trace(this + ' pressed'); }
setInterval (mc, 'onPress', 5000 );
Создайте мувик, назовите mc и тестируйте. Хоть мышкой, хоть по интервалу, хоть еще как.
osa 2413
09.06.2007, 06:37
сделал обработчики в каждом объекте(мувике) карты(тоже мувик), (а карта еще в другом мувике находится, в общем так сказать):
on (press)
{
this._parent._parent.GetNameOfAreaFromXML("code1");
this._parent.startDrag();
}
on (release)
{ stopDrag(); }
А где форумные теги?
on(что-то) это кошмар и головная боль.
osa 2413
09.06.2007, 06:41
спасибо to silin и Kikasso!
почему кошмар?
почему кошмар?
Это надо прочуствовать.
1)проблема с областью видимости, если сажаете код на кнопку.
2)попробуйте-ка поменять коды на 50 кнопках.
3)попробуйте динамически изменить обработчик.
Есть и другие траблы, но 2-го хватает.
osa 2413, отредактируйте свой пост и оформите код тегами .
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.