在Flash(AS3)的动态文本框中启用导入的旋转图像的平滑

时间:2009-03-09 01:50:30

标签: flash actionscript-3

我在舞台上有一个旋转10°的电影剪辑,里面有一个动态文本框。我正在加载一些文本,其中嵌入了图像:

(现在使用第一帧AS3,最终会进入一个类。)

var txt:String = '<img src="foo.gif" id="myImg1" /><p>Lorem ipsum</p>';

my_mc.txtBox.htmlText = txt;

哪个工作正常。文本被放置,甚至很好地包裹图像。问题是,图像看起来很糟糕。我找到了Bitmap.smoothing属性,但似乎无法访问图像来设置属性。我正在尝试这段代码:

var img:DisplayObject = my_mc.txtBox.getImageReference('myImg1');
if (typeof(img) != 'undefined') {
    img.contentLoaderInfo.addEventListener(Event.COMPLETE, onHtmlImageLoaded);
}

function onHtmlImageLoaded(event:Event):void{
    event.target.removeEventListener(Event.COMPLETE, onHtmlImageLoaded);
    Bitmap(event.target.content).smoothing = true;  
}  

'img.contentLoaderInfo ...'行会引发此错误:

1119: Access of possibly undefined property content through 
a reference with static type flash.display:DisplayObject.

3 个答案:

答案 0 :(得分:2)

试试这个:

var img:Loader = Loader( tx.getImageReference('proceso') );
img.contentLoaderInfo.addEventListener(Event.COMPLETE, onHtmlImageLoaded);

function onHtmlImageLoaded(event:Event):void{
    event.target.removeEventListener(Event.COMPLETE, onHtmlImageLoaded);
    Bitmap(event.target.content).smoothing = true;      
}

这是工作。

答案 1 :(得分:1)

我认为你只是在你的事件处理程序中错过了对Loader的强制转换:

Bitmap(Loader(event.target).content).smoothing = true;     

编辑:在注册事件处理程序时执行相同的操作:

 Loader(img).contentLoaderInfo.addEventListener(Event.COMPLETE, onHtmlImageLoaded);

答案 2 :(得分:0)

我会尝试将BitmapData类用于图像,并对其应用平滑。