| Autor | Zpráva | ||
|---|---|---|---|
| andy7 Profil * |
#1 · Zasláno: 7. 1. 2012, 15:25:41
ahojte chcel by som sa vas spytat ci by ste mi vedeli poradit s tymto problémom: takže predstavte si že mate na prvej snimke v scene nakresleny stvorec rozmery 100x100. prevediete ho na MC. teraz chcem aby reagoval na akciu rollover a rollout .ok to by som vedel ale neviem ako by som mal spravit to že ak nad nim pridem mysou zmeni ten objekt dlzky stran teda 100x200. a ked z toho objektu mysou odideme tak sa zmeni na povodnu velkost teda na 100x100. toto vsetko by som cchel spraviť tak že i keby človek tou myšou odíde skorej ako ja ta druha strana dosiahne dlzku 200 tak sa ten movieclip zastavi a opat vrati späť teda na rozmer 100x100. viete mi niekto pomocť?
|
||
| weroro Profil |
#2 · Zasláno: 9. 1. 2012, 08:21:26
Riešenie pre ActionScript 2.0:
Neanimovaná zmena ceľkosti (šírka) this.mc.onRollOver = function ():Void
{
this._width = 200;
};
this.mc.onRollOut = function ():Void
{
this._width = 100;
};Animovaná zmena velkosti (šírka) /*
* mc = naázov movieclipu
* w = šírka na ktorú sa má mc roztiahnut
* speed = rychlost zmeny rozmeru v pixeloch
* out = urcenie kedy sa ma vykonat dana akcia (true = onRollOut; false = onRollOver
* center = určenie či sa má roztahovany mc udrzovat stale v strede
*/
function resMC (mc:MovieClip, w:Number, speed:Number, out:Boolean, center:Boolean):Void
{
mc.w = (!w) ? mc.width : w;
mc.speed = (!speed) ? 1 : speed;
mc.out = out;
mc.center = center;
mc.onEnterFrame = function ():Void
{
if (!this.out && this._width < this.w) this._width += this.speed;
if (this.out && this._width > this.w) this._width -= this.speed;
if (this.center)
{
if (this.out) this._x += this.speed / 2;
else this._x -= this.speed / 2;
}
if (this._width == this.w) delete this.onEnterFrame;
};
}
this.mc.onRollOver = function ():Void
{
resMC (this, 200, 5, false, true);
};
this.mc.onRollOut = function ():Void
{
resMC (this, 100, 1, true, true);
}; |
||
| andy7 Profil * |
#3 · Zasláno: 11. 1. 2012, 13:14:13
diky moc za pomoc :)
|
||
| andy7 Profil * |
#4 · Zasláno: 12. 1. 2012, 23:09:33
len tam je chybycka a to ze preco sa ten objekt stale pohybuje, ked na neho prejdem mysou?
|
||
| weroro Profil |
#5 · Zasláno: 13. 1. 2012, 21:56:26
Áno, pardon. Bol som v tedy po oslave, tak som bol mierne nepozorný. Tu je oprava:
/*
* mc = naázov movieclipu
* w = šírka na ktorú sa má mc roztiahnut
* speed = rychlost zmeny rozmeru v pixeloch
* out = urcenie kedy sa ma vykonat dana akcia (true = onRollOut; false = onRollOver
* center = určenie či sa má roztahovany mc udrzovat stale v strede
*/
function resMC (mc:MovieClip, w:Number, speed:Number, out:Boolean, center:Boolean):Void
{
mc.w = (!w) ? mc.width : w;
mc.speed = (!speed) ? 1 : speed;
mc.out = out;
mc.center = center;
mc.onEnterFrame = function ():Void
{
if (!this.out && this._width < this.w)
{
this._width += this.speed;
if (this.center) this._x -= this.speed / 2;
}
if (this.out && this._width > this.w)
{
this._width -= this.speed;
if (this.center) this._x += this.speed / 2;
}
if (this._width == this.w) delete this.onEnterFrame;
};
}
this.mc.onRollOver = function ():Void
{
resMC (this, 200, 5, false, true);
};
this.mc.onRollOut = this.mc.onReleaseOutside = function ():Void
{
resMC (this, 100, 1, true, true);
}; |
||
|
Časová prodleva: 14 let
|
|||
0