![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Feb 2011
Сообщений: 2
|
Здравствуйте создаю флеш ролик для myspace под ubuntu в связке Eclipse+AS IDE+flex_sdk. При добавлении к картинке события MOUSE_MOVE и изменения в нем параметров фильтра изображение начинает дергаться. Причем, это дергание возникает только при параметре wmode="transparent". Если поставить wmode="opaque" дерганье исчезает.
Код добавления ролика на страничку:
С чем это может быть связано и как можно это исправить? http://www.myspace.com/lastwailtest здесь можно посмотреть корявость ролика. package lastwail.header { import flash.filters.BitmapFilterQuality; import flash.filters.BitmapFilterType; import flash.filters.GradientGlowFilter; import flash.events.Event; import flash.events.MouseEvent; import mx.core.BitmapAsset; public class Logo { // this.Parent.GetDisplay() - получает указатель на Sprite главного окна private var Parent: Application; [Embed(source="/var/www/Logo.png")] private var EmbedLogo: Class; private var LogoLoader: BitmapAsset; private var Glow: GradientGlowFilter; private var KAlpha: Number; public static const KAlphaMax: Number = 0.7; public static const KAlphaMin: Number = 0.5; private function Fade(Current: Number, From: Number, To: Number): Number { var Result: Number = Current + (To - From) * 1000 / (Common.FadeTime() * this.Parent.GetDisplay().stage.frameRate) if (((Result <= Current) && (Result < To)) || ((Result >= Current) && (Result > To))) Result = To; return Result; } public function Logo(P: Application) { this.Parent = P; this.LogoLoader = new EmbedLogo(); this.KAlpha = 1; Glow = new GradientGlowFilter(); Glow.distance = 0; Glow.angle = 45; Glow.colors = [0x0000FF, 0xFF0000]; Glow.alphas = [0, KAlphaMax]; Glow.ratios = [0, 255]; Glow.blurX = 0; Glow.blurY = 0; Glow.strength = 0; Glow.quality = BitmapFilterQuality.HIGH; Glow.type = BitmapFilterType.OUTER; this.LogoLoader.x = (this.Parent.GetDisplay().stage.stageWidth - this.LogoLoader.width) / 2; this.LogoLoader.y = 15; this.Paint(); this.LogoLoader.filters = [Glow]; this.Parent.GetDisplay().stage.addEventListener(MouseEvent.MOUSE_MOVE, this.OnMouseMove); } private function OnMouseMove(event: MouseEvent):void { var MX: Number = event.stageX; var MY: Number = event.stageY; Glow.blurX = this.KAlpha * 127 * Math.exp(-5 * Math.abs(MX - (this.LogoLoader.x + this.LogoLoader.width / 2)) / (this.Parent.GetDisplay().stage.stageWidth)); Glow.blurY = this.KAlpha * 127 * Math.exp(-5 * Math.abs(MY - (this.LogoLoader.y + this.LogoLoader.height / 2)) / (this.Parent.GetDisplay().stage.stageHeight)); Glow.strength = this.KAlpha * 7 * Math.exp(-0.004 * (255 - (Glow.blurX + Glow.blurY))); this.LogoLoader.filters = [Glow]; // Комментируем эту строчку - дергание прекращается } public function FadeIn(E: Event): void { this.KAlpha = Fade(this.KAlpha, KAlphaMin, KAlphaMax); Glow.alphas = [0, this.KAlpha]; this.LogoLoader.filters = [Glow]; if (this.KAlpha >= 1) this.Parent.GetDisplay().removeEventListener(Event.ENTER_FRAME, this.FadeIn); } public function FadeOut(E: Event): void { this.KAlpha = Fade(this.KAlpha, KAlphaMax, KAlphaMin); Glow.alphas = [0, this.KAlpha]; this.LogoLoader.filters = [Glow]; if (KAlpha <= 0.5) this.Parent.GetDisplay().removeEventListener(Event.ENTER_FRAME, this.FadeOut); } public function OnResizeDisplay(e: Event): void { if (this.Parent.GetDisplay().stage.stageHeight < Common.DefaultHeight()) { this.Parent.GetDisplay().removeEventListener(Event.ENTER_FRAME, this.FadeOut); this.Parent.GetDisplay().addEventListener(Event.ENTER_FRAME, this.FadeIn); } else { this.Parent.GetDisplay().removeEventListener(Event.ENTER_FRAME, this.FadeIn); this.Parent.GetDisplay().addEventListener(Event.ENTER_FRAME, this.FadeOut); } } private function Paint(): void { this.Parent.GetDisplay().addChild(this.LogoLoader); } } } |
|
|||||
|
Регистрация: Aug 2010
Адрес: Харьков, Украина
Сообщений: 42
|
У меня дергались мувики при наложении эффектов, справился установлением сразу этих же эффектов с нулевой альфой.
|
|
|||||
|
Регистрация: Feb 2011
Сообщений: 2
|
Спасибо. Буду знать.. Кстати, оставлю, наверно. как есть. Потому что у всех опрошенных после обеда сегодня перестало дергаться. (хотя утром сразу 3 человека сказали, что есть косяк.)
|
![]() |
![]() |
Часовой пояс GMT +4, время: 06:14. |
|
|
« Предыдущая тема | Следующая тема » |
|
|