Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > ActionScript 1,2 > подскажите


Автор: miramultik 21.3.2009, 15:47
Как сделать, чтоб персонаж, при перемещении на него объекта(у меня это кнопка), улыбнулся???  smile 

Автор: bars80080 21.3.2009, 20:57
написать веселящую функцию?

Автор: miramultik 21.3.2009, 22:10
нужно, чтоб изменился персонаж, именно когда на него перемещаешь объект.

Добавлено через 3 минуты и 39 секунд
перемещение делать научилась, отдельно кнопку прорисовать могу(при нажатии меняется картинка) Как объединить? или это нужно делать подругому?

Автор: bars80080 21.3.2009, 23:47
так что-то осмысленное.

ладно, думаем, как определить что нечто (допустим курсор) над неким клипом, решение простое - надо узнать координаты мыши (всего два параметра _xmouse и _ymouse), и находятся ли эти координаты в пределах клипа (персонажа). смотрим доки, там есть такой метод 
mc.hitTest(x,y,ShapeFlag); - mc - наш персонаж, x и y координаты мыши, третий параметр false - если раницей клипа считается его прямоугольная рамка, true - реальный контур

т.е. примерно так:

Код

_root.onEneterFrame = function() {
    if(personaz.hitTest(_xmouse, _ymouse, true)) { ulybka(); }
}


теперь вопрос, как на счёт кнопки. если мы её тягаем мышью, то вариант выше, если нет, то придётся заняться чистой математикой, здесь требуется высчитывать перекрытие площадей. (метода на перекрытия площадей не помню. может в AS3 есть...)
каждый раз определяем входят ли координаты одного объекта в другой. для этого лучше принять что оба объекта прямоугольные, найти для каждого xp1, yp1, xp2, yp2 и xk1, yk1, xk2, yk2 и составить некую формулу

Код

_root.onEneterFrame = function() {
    xk1 = button._x; yk1 = button._y;
    xk2 = button._x + button._width; yk2 = button._y + button._height;
    // тоже для персонажа
    if((xk1 < xp2 && xk1 > xp1 && yk1 < yp2 && yk1 > yp1) ||
        (xk2 < xp2 && xk2 > xp1 && yk2 < yp2 && yk2 > yp1)) { ulybka(); }
}


как-то так

Автор: miramultik 22.3.2009, 16:31
чет не получается...можт до меня не доходит чего... У меня персонаж - кнопка прорисованная(при нажатии - рот растягивается в улыбку)....  Пробовала делать персонаж мувиком, но при прорисовывании улыбки, он соответственно непрерывно меняет кадры, ротик дергается. Как же сделать, чтоб уыбнулся именно в момент наложения на него объекта(кнопки), не знаю. Где нужно прописать код...
И еще...я во флеш MX рисую....но есть и CS c actionscript2, но в нем у меня не получается организовать "перетащи и положи".....
Извините за тугоумство... smile 

Автор: bars80080 22.3.2009, 16:53
Цитата(miramultik @  22.3.2009,  15:31 Найти цитируемый пост)
но при прорисовывании улыбки, он соответственно непрерывно меняет кадры, ротик дергается.

делается так. рисуется два кадра - один нормальный, другой с улыбкой. в каждом пишем stop();
заместо функции ulybka(); пишем goAndPlay(номер кадра);

а код вызова обычно пишется на отдельном слое в первом кадре _root.onEneterFrame - означет что проверка будет производиться с частотой указанных кадров (обычно 12 раз в секунду). хотя конечно стоило бы производить только по перемещению мыши, но так проще

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)