![]() |
|
||||||||||
|
|||||
|
Регистрация: Nov 2007
Сообщений: 28
|
Очень нравится плавное увеличение/уменьшение кнопок в игре "счастливый фермер" при наведении/отведении курсора мыши, захотел сделать такое же. Вроде бы всё получилось, но работает хреново - иногда дрожит вместо начала увеличения, как бы застряв на старте. Особенно это видно при наведении мыши на самый край мувиклипа.
Прошу разъяснить, что нужно поправить в коде, чтобы работало как часы. Во вложении исходник CS3 Сам код: var bglowfilter = new flash.filters.GlowFilter(); bglowfilter.color = 0x000000; bglowfilter.strength = 0.35; bglowfilter.blurY = 15; bglowfilter.blurX = 15; var bglowfilter_arr:Array = new Array(); bglowfilter_arr.push(bglowfilter); function scbuttons(tar) { var b1:MovieClip = tar; b1.filters = bglowfilter_arr; b1.sc = 100; b1.scmax = 170; b1.scdelta = 14; b1.over = 0; b1.onRollOver = function() { this.over = 1; this.swapDepths(_root.getNextHighestDepth()); scaling(); }; b1.onRollOut = function() { this.over = 0; scaling(); }; function scaling() { if (b1.over == 1) { b1.onEnterFrame = function() { if (this.sc<this.scmax) { this.sc += this.scdelta; this._xscale = this.sc; this._yscale = this.sc; } else { this.onEnterFrame = null; } }; } else { b1.onEnterFrame = function() { if (this.sc>100) { this.sc -= this.scdelta; this._xscale = this.sc; this._yscale = this.sc; } else { this.onEnterFrame = null; } }; } } } scbuttons(b1); scbuttons(b2); scbuttons(b3); |
|
|||||
|
Регистрация: Oct 2009
Сообщений: 50
|
у меня было такое дрожжание когда при наведении на край кнопки менялся кадр мувика и в нем было изображение на пару пикселей меньше предыдущего и курсор уже оказывался не на кнопке и возвращался ппервый кадр, и т.д....
|
|
|||||
|
а что мешает сделать так?
var size:Number = 50; b1.onRollOver = function(){ var s:Number = 0; onEnterFrame = function(){ if(s<=size) { b1._xscale = 100 + s; b1._yscale = 100 + s; s+=10; } } } b1.onRollOut = function(){ var s:Number = 0; onEnterFrame = function(){ if(s<=size) { b1._xscale = 100 + size - s; b1._yscale = 150 - s; s+=10; } } } там уж сам подгонишь под свои нужды Последний раз редактировалось GreyClown; 09.10.2009 в 14:17. |
|
|||||
|
Этот лучше, потому что когда перестает быть нужным, onEnterFrame удаляется, и не грузит комп без причины.
clip.onRollOver = function() { this.onEnterFrame = function() { if (this._xscale < 200) { this._xscale = this._yscale += 10; } }; }; clip.onRollOut = clip.onDragOut = function () { this.onEnterFrame = function() { if (this._xscale > 100) { this._xscale = this._yscale -= 10; } if (this._xscale == 100) { delete this.onEnterFrame; } }; }; |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:27. |
|
|
« Предыдущая тема | Следующая тема » |
|
|