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: 13 let
|
0