我正在嵌入这样的图像:
[Embed(source="/tool_deleteUp.png")]
private static const c_deleteButton_styleUp:Class;
我正在使用它:
_removeButton = new Button();
_removeButton.setStyle('upSkin', c_deleteButton_styleUp);
旋转按钮时,图像无法平滑缩放。我知道用于缩放图像控件中加载的图像的技巧,但是我正在撞墙,试图弄清楚如何在这里进行操作。
帮助!
答案 0 :(得分:1)
Bitmap
类型的相应c_deleteButton_styleUp
,并将其平滑设置为true ...这是一个很大的... flex的缺陷,有时它需要用于造型的类,尽管有些IDisplayObjectFactory
完全可以达到这个目的,并且会让你的生活变得更轻松......但生活才是生命......
不知道只有干净的灵活方式...我能想到的唯一可能性是创建一个SWF,其中包含您的资产作为符号,打开平滑,并从该SWF嵌入此符号...
希望有所帮助...
格尔茨
back2dos
答案 1 :(得分:1)
更好,更通用的解决方案。它不仅处理上述情况,而且还处理
public static function smoothChildBitmaps(object:UIComponent):void{
// Define a nested smooth method
function smoothChildren(val:UIComponent):void{
var childList:IChildList;
if(val is IRawChildrenContainer){
childList = (val as IRawChildrenContainer).rawChildren;
}
else{
childList = object;
}
for(var i:int = 0; i < childList.numChildren; i++){
var child:Bitmap = childList.getChildAt(i) as Bitmap;
if(child != null){
child.smoothing = true;
}
}
};
// Call the nested method on the object right away
smoothChildren(object);
// Set up an event handler to re-call the method when a child is added
object.addEventListener(
Event.ADDED,
function(args:Event):void{
smoothChildren(object);
}
);
}
答案 2 :(得分:0)
愚蠢,但它确实有效。
import flash.display.Bitmap;
import mx.controls.Button;
public class SmoothButton extends Button{
protected override function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void{
for(var i:int = 0; i < this.numChildren; i++){
var child:Bitmap = this.getChildAt(i) as Bitmap;
if(child != null){
child.smoothing = true;
}
}
}
}
答案 3 :(得分:-1)
我不知道你们的人是什么?没有冒犯,只是开玩笑。我有一张桌子:-P
无论如何,提供的那些脚本完全没用!首先,你不能将uicomponent转换为位图!另一件事是,与rawchildren的秒脚本更不一样。原始孩子得到你的孩子和容器的铬 - 就是这样。如果容器中有一个按钮,则可以尝试平滑容器的镶边 - 其余部分保持不变,因为所有转换为位图都会失败。
那么,是不是rdfm?
另一方面。可以尝试stage.quality到stagequality.best。如果你检查adobe论坛http://forums.adobe.com/thread/427899,你会看到flex运行良好 - 只是空气忽略了这一点:-(
如果这两个脚本有效 - 尤其是按钮作为位图的部分 - 我会去某处粉碎我的头:-)。我在类层次结构中看不到这种方法可行。毕竟,numChildren只给你uicomponents或displayobjects,但仅此而已!