kilotsun
02.12.2009, 15:04
Есть такой код
я его немного сжал и укоротил, чтоб не грузить тему
ссылка на полный - Photo.as (http://www.sunerzha.com/photogallery/Photo.as)
ссылка на работающий проект - проект ("http://www.sunerzha.com/photogallery"/)
public class Photo extends Sprite
{
public var small:Sprite;
private var dropShadowFilter:DropShadowFilter;
private var colorFilter:ColorMatrixFilter;
private var unColorFilter:ColorMatrixFilter;
private var colorAdjustFilter:ColorAdjust;
private var unColorAdjustFilter:ColorAdjust;
public function Photo( smallUrl:String, index:int )
{
initEffects();
...
}
private function initEffects()
{
unColorAdjustFilter = new ColorAdjust();
unColorAdjustFilter.saturation = 0;
unColorFilter = unColorAdjustFilter.filter;
colorAdjustFilter = new ColorAdjust();
colorAdjustFilter.saturation = 1;
colorFilter = colorAdjustFilter.filter;
dropShadowFilter = new DropShadowFilter( 3, 35, 0x000000, 0.3, 3, 3, 1, 5);
}
private function onSmallLoad( event:Event):void
{
...
unColorize();
...
}
private function onSmallMouseOver( event:Event):void
{ colorize(); }
private function onSmallMouseOut( event:Event):void
{ unColorize(); }
public function showShadow()
{ small.filters = [dropShadowFilter]; }
public function hideShadow()
{ small.filters = undefined; }
public function colorize()
{ small.filters = [colorFilter]; }
public function unColorize()
{ small.filters = [unColorFilter]; }
}
Проблема вот в чем при частом запуске onSmallMouseOver, код из colorize не срабатывает, причем сама colorize запускается, т.е. похоже что функция small.filters set - не срабатывает по какой-то причине, её то как раз я и не могу понять.
Если colorize будет выглядеть так:
public function colorize()
{ small.filters = undefined; }
меня бы это устроило, но тогда при частом onSmallMouseOver-onSmallMouseOut происходит мигание этих же картинок в позиции [0, 0] но при этом первая проблема исчезает, что сейчас и происходит в выставленном проекте.
Заранее благодарен откликнувшимся
я его немного сжал и укоротил, чтоб не грузить тему
ссылка на полный - Photo.as (http://www.sunerzha.com/photogallery/Photo.as)
ссылка на работающий проект - проект ("http://www.sunerzha.com/photogallery"/)
public class Photo extends Sprite
{
public var small:Sprite;
private var dropShadowFilter:DropShadowFilter;
private var colorFilter:ColorMatrixFilter;
private var unColorFilter:ColorMatrixFilter;
private var colorAdjustFilter:ColorAdjust;
private var unColorAdjustFilter:ColorAdjust;
public function Photo( smallUrl:String, index:int )
{
initEffects();
...
}
private function initEffects()
{
unColorAdjustFilter = new ColorAdjust();
unColorAdjustFilter.saturation = 0;
unColorFilter = unColorAdjustFilter.filter;
colorAdjustFilter = new ColorAdjust();
colorAdjustFilter.saturation = 1;
colorFilter = colorAdjustFilter.filter;
dropShadowFilter = new DropShadowFilter( 3, 35, 0x000000, 0.3, 3, 3, 1, 5);
}
private function onSmallLoad( event:Event):void
{
...
unColorize();
...
}
private function onSmallMouseOver( event:Event):void
{ colorize(); }
private function onSmallMouseOut( event:Event):void
{ unColorize(); }
public function showShadow()
{ small.filters = [dropShadowFilter]; }
public function hideShadow()
{ small.filters = undefined; }
public function colorize()
{ small.filters = [colorFilter]; }
public function unColorize()
{ small.filters = [unColorFilter]; }
}
Проблема вот в чем при частом запуске onSmallMouseOver, код из colorize не срабатывает, причем сама colorize запускается, т.е. похоже что функция small.filters set - не срабатывает по какой-то причине, её то как раз я и не могу понять.
Если colorize будет выглядеть так:
public function colorize()
{ small.filters = undefined; }
меня бы это устроило, но тогда при частом onSmallMouseOver-onSmallMouseOut происходит мигание этих же картинок в позиции [0, 0] но при этом первая проблема исчезает, что сейчас и происходит в выставленном проекте.
Заранее благодарен откликнувшимся