![]() |
|
||||||||||
|
|||||
|
Регистрация: Jun 2007
Сообщений: 30
|
Господа, я к вам опять в недобрый час. Проблема в следующем. На главной временной линейке есть две кнопки. В первый кадр вбивается код:
light2._alpha = 0;//Начальное состояние первой кнопки
part._alpha = 55;
light2.onRollOver = function() {
light2._alpha = 0;
part._alpha = 55;
onEnterFrame = function () {
light2._alpha += 8;
part._alpha += 4;
};
};
delete onEnterFrame;
light2.onRollOut = function() {
light2._alpha = 100;
part._alpha = 100;
onEnterFrame = function () {
light2._alpha -= 8;
part._alpha -= 4;
if (part._alpha<=55) {
part._alpha = 55;
}
};
};
delete onEnterFrame;
Продолжаем вбивать код для второй кнопки. Теперь все выглядит так: light2._alpha = 0;//Начальное состояние первой кнопки
light3._alpha=0;// Начальное состояние второй кнопки
part._alpha = 55;
light2.onRollOver = function() {
light2._alpha = 0;
part._alpha = 55;
onEnterFrame = function () {
light2._alpha += 8;
part._alpha += 4;
};
};
delete onEnterFrame;
light2.onRollOut = function() {
light2._alpha = 100;
part._alpha = 100;
onEnterFrame = function () {
light2._alpha -= 8;
part._alpha -= 4;
if (part._alpha<=55) {
part._alpha = 55;
}
};
};
delete onEnterFrame;
light3._alpha = 0;
light3.onRollOver = function() {
light3._alpha = 0;
onEnterFrame = function () {
light3._alpha += 8;
};
};
delete onEnterFrame;
light3.onRollOut = function() {
light3._alpha = 100;
onEnterFrame = function () {
light3._alpha -= 8;
};
};
delete onEnterFrame;
Если кто знает проблему - взываю к помощи. |
|
|||||
|
проблема в том, что в onRollOver /onRollOut ты назначаешь/меняешь onEnterFrame одного и того же объекта (их родителя), стало быть определенный по onRollOut одной кнопки, тут же переопределяется в onRollOver другой..
поставь везде this.onEnterFrame=.. (тогда это будут onEnterFrame самих кнопок и переопределяться друг другом уже не будут) зы: delete onEnterFrame (да еще в таком количестве) ничего не выполняют в твоем коде.. |
|
|||||
|
меценат
|
var Go:Number = 3;//скорость альфы
var Next:Number = 2;//количество кнопак на которые распространяется код
for (var i:Number = 0; i<Next+1; i++) {
this["mc"+i]._alpha = 0;
this["mc"+i].onRollOver = function() {
this.onEnterFrame = function() {
if (this.hitTest(_root._xmouse, _root._ymouse)) {
if (this._alpha<=100) {
this._alpha += Go;
}
}
if (!this.hitTest(_root._xmouse, _root._ymouse)) {
if (this._alpha>=0) {
this._alpha -= Go;
}
if (this._alpha<=0) {
delete this.onEnterFrame;
}
}
};
};
}
![]() кнопки называть вот так mc1 , mc2 и т.д.
__________________
Безвыходных положений небывает © Барон Мюнхаузен=)Исходники Последний раз редактировалось D12; 15.07.2007 в 00:20. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
в "onEnterFrame" какого мувика ты записываешь функцию?
в _root -- поэтому она у тебя перезаписывается если ты наводишь на дугую кнопку. пиши в функциях, который записываешь в onRollOut и onRollOver -- this.onEnterFrame. Если cсылаешься не из функции пиши lightX.onEnterFrame |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 30
|
Ok, спасиб всем.
Сейчас исправимся. Вот что еще хотел спросить…смотрю я на свой код и думаю, *Может его оптимизировать как-нибудь? Что то уж больно громоздкий для такого примитивного действа. * Как считаете?Вот код на одну (первую) кнопку – она вообще работать отказалась. light2._alpha = 0;
light3._alpha = 0;
part._alpha = 55;
light2.onRollOver = function() {
light2._alpha = 0;
part._alpha = 55;
this.onEnterFrame = function() {
light2._alpha += 8;
part._alpha += 4;
};
};
light2.onRollOut = function() {
light2._alpha = 100;
part._alpha = 100;
this.onEnterFrame = function() {
light2._alpha -= 8;
part._alpha -= 4;
if (part._alpha<=55) {
part._alpha = 55;
}
};
};
Последний раз редактировалось iNils; 15.07.2007 в 04:42. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
stop();
var fadeSpeed = 5;
var limAlpha = 55;
function fadeIn(){
this._alpha += fadeSpeed;
if(this._alpha >= 100 ) delete this.onEnterFrame;
}
function fadeOut(){
this._alpha -= fadeSpeed;
if(this._alpha <= limAlpha ){
this._alpha = limAlpha;
delete this.onEnterFrame;
}
}
function doRollOver(){
this.onEnterFrame = fadeIn;
}
function doRollOut(){
this.onEnterFrame = fadeOut;
}
/// код для кнопки ///
mc._alpha = limAlpha;
mc.onRollOver = doRollOver;
mc.onRollOut = mc.onDragOut = doRollOut;
Последний раз редактировалось Kikasso; 25.09.2007 в 17:13. |
|
|||||
|
Регистрация: Jun 2007
Сообщений: 30
|
Вешаю код на кнопку - выдает ошибку(
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Надо «вешать» в кадр, а не на кнопку.
|
|
|||||
|
Цитата:
есть и другие варианты: import mx.transitions.*
var fadeDuration=20;
var defaultAlpha=55;
function fadeIn(){
new Tween(this,"_alpha",null,this._alpha,100,fadeDuration);
}
function fadeOut(){
new Tween(this,"_alpha",null,this._alpha,defaultAlpha,fadeDuration);
}
//mc1, mc2 - кнопки
mc1._alpha=mc2._alpha=defaultAlpha;
mc1.onRollOver = mc2.onRollOver =fadeIn;
mc1.onRollOut = mc2.onRollOut = fadeOut;
import mx.transitions.*
class But extends MovieClip {
static public var defaultAlpha=10;
static public var duration=20;
public function But(){
onDragOut = onRollOut;
_alpha=defaultAlpha;
}
function onRollOver(){
new Tween(this,"_alpha",null,_alpha,100,duration);
}
function onRollOut(){
new Tween(this,"_alpha",null,_alpha,defaultAlpha,duration);
}
}
Последний раз редактировалось silin; 15.07.2007 в 20:04. |
![]() |
![]() |
Часовой пояс GMT +4, время: 03:24. |
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | |
| Опции просмотра | |
|
|