PDA

Просмотр полной версии : как мне контролировать эффект(правильное использование функций и лог. выражений)


Blackjack1616
09.06.2010, 22:33
Привет! есть код в нескольких слоях:

cursor:

function createCursor(){

hideCursor=attachMovie("cur","hCursorS",_root.getNextHighestDepth(),{_x:_xmouse,_y:_ymouse});
hideCursor._alpha=100;
}
function controlCursor(){
hideCursor.onEnterFrame = function(){
hideCursor._x=_xmouse;
hideCursor._y=_ymouse;
}
}
function initCursor(){
createCursor();
controlCursor();
}


spr:

function spriteVars(){
cellSize = 50;
lm = 8;
mm = 8;
k=0;
xcoord=0;
ycoord=0;
spriteFalphaD=0;
spriteFalphaA=30;
spriteFalphaS=3;

mu="qwe";
}
function randomFramesInit(){

randomFramesNumb=random(totalFrameMC);
if(randomFramesNumb==0){
randomFramesNumb=1;
}
mcff.gotoAndStop(randomFramesNumb);
}

function spriteRollOverEffect(){
mcff.onEnterFrame=function(){
if(this.hitTest(hideCursor)){
this._alpha+=spriteFalphaS;
}else{
this._alpha=this._alpha;
}
if(this._alpha==spriteFalphaA){
this._alpha=20;
}
spriteRollOverBack();
}

}
function spriteRollOverBack(){
if(this._alpha>=spriteFalphaA){
this._alpha-=spriteFalphaD;

}

}
function spriteControl(){
randomFramesInit();
spriteRollOverEffect();

}
function matrixConstruct(){

for (var im:Number = 0; im < lm; im++){
var ym:Number = im * cellSize;

for (var jm:Number = 0; jm < mm; jm++){

mcff= attachMovie(mu, "mc" + im + "_" + jm,_root.getNextHighestDepth());

mcff._x = (jm * cellSize)+xcoord;
mcff._y = (ym)+ycoord;
mcff._alpha=spriteFalphaD;
totalFrameMC = mcff._totalframes;
spriteControl();
}
}

}
function initFrameEffect(){
spriteVars();
createSpriteEffects();
matrixConstruct();
}



begin:

function initP(){
initCursor();
initFrameEffect();
}

initP();


нужно, что бы при наведении на любое место, начало увеличиваться альфа мувика, но дойдя до определенного значения она начала или уменьшаться или снова стать нулевым значением.

сейчас при наведении на сцену мыши, у квадратов увеличивается альфа, но дойдя до определенного значения, не уменьшается.

почему код не работает? как надо делать правильно?

rainbowrussia
09.06.2010, 23:04
Не запускал, но попробуйте заменить
this._alpha==spriteFalphaA
на
this._alpha>=spriteFalphaA

Blackjack1616
09.06.2010, 23:09
там скорость увеличивается на значение spriteFalphaS, которое равно 3, а значение spriteFalphaA равно 30. поэтому надо >=.

Добавлено через 7 минут
черт! там все же получиться тридцать, но значение spriteFalphaS - оно может быть разным.

rainbowrussia
10.06.2010, 00:07
Ничего не понял из последнего поста... но у вас есть код
this._alpha=20;
после которого добавляя по 3 к значению альфы сложно получить ровно 30.

Blackjack1616
10.06.2010, 00:46
Вот это да! все блин работает, опять я чего то не заметил и написал на этот форум.

Спасибо большое, все работает.