PDA

Просмотр полной версии : Анимирую кнопку. Фигня.


Sanila
08.11.2005, 14:55
Пытаюсь программно анимировать кнопку, получается ерунда, точнее, ничего не получается. :mad:


//Функция увеличения размера кнопки
function UpSize(clip:MovieClip) {
_root.onEnterFrame = function() {
for (var i = 100; i<120; i++) {
clip._xscale = i;
clip._yscale = i;
}
};
}
//Функция уменьшения размера кнопки
function DnSize(clip:MovieClip) {
for (var i = 120; i>100; i--) {
clip._xscale = i;
clip._yscale = i;
}
}

/*
******************************
*/
intHolder.but_URL2.onRollOver = function() {
UpSize(this);
};


but_URL2 - это загружен экземпляр из библиотеки. Функции увеличения и уменьшения специально разные - подскажите, какая правильная. :) Что-то не пойму, где там ошибка. По-моему, ошибся дважды. :mad:

unlexx
08.11.2005, 15:02
[CODE]
//Функция увеличения размера кнопки
function UpSize(clip:MovieClip) {
i=100;
_root.onEnterFrame = function() {
i++;
if (i<120) {
clip._xscale = i;
clip._yscale = i;
}else{
delete _root.onEnterFrame;
}
};
}

уменьшение аналогично

Skubent
08.11.2005, 15:06
В свойствах кнопки - export for action script.
По клику на экземпляр кнопки в окне Properties приписать какое-либо название (названия из библиотеки никакого отношения к идентификаторам скрипта не имеют).
В параметрах функции определиться - MovieClip это или все же Button.

Кроме масштабирования еще надо играться положением, а то уж больно дергается она.

on (rollover) лучше писать применительно в выбранному элементу, хотя хозяин-барин.

Sanila
08.11.2005, 15:32
Речь идёт о клипе в роли кнопки. Пожалуй, onRollOver лучше дейсттвительно применять к конкретному клипу.

Sanila
08.11.2005, 17:08
уменьшение аналогично

Спасибо! Сейчас только заставлю ф-ю работать... :) Она-то работает, только в тестовом фильме. А в нужном - не хочет Где-то попутал название, не иначе.

Sanila
09.11.2005, 16:42
function UpSize(clip:MovieClip) {
//.............
}

//MovieClip.prototype.UpSize = UpSize;

//.........

intHolder.but_URL2.onRollOver = function() {
UpSize(this); //:BUG: #1 - не работает вполне рабочая функция, строкой ниже всё нормально
//this._yscale = 120;


Странно. в другом фильме эта функция с этим же синтаксисом работает. Кто видит ошибку?

unlexx
09.11.2005, 16:46
intHolder.but_URL2.onRollOver = function() {
_root.UpSize(this);

общем с адресацией к функции разберись

Sanila
09.11.2005, 16:56
А вот и ни фига. _root там ни при чём. Да странно, что
clipholder.clip.onRollOver = function() {
UpSize(this);
//this._y +=20;
};
работает, а то же самое, только в другом фильме - не хочет. :confused: _root ничего и не изменит. Действительно какая-то фигня с адресацией. :mad:

unlexx
09.11.2005, 17:04
рут это так обычная ошибка(наскидку, не видя фла), смотри внимательно адресацию

Sanila
10.11.2005, 08:27
Кидаю исходник. Может, кто и увидит косяк.