我有一个皮肤,它的基类是GraphicRectangularBorderSkin (来自degrafa)。我把它当做面板皮肤使用。我使用的是Degrafa 3.2,Flex 3.2。它每次都会抛出一个#1502错误(当脚本运行时间太长时抛出)。如果我删除更改em变量的行,错误就会消失。
这个类基本上是(尽管为了清楚起见我对其进行了解释):
<GraphicRectangularBorderSkin xmlns:mx="http://www.adobe.com/2006/mxml" xmlns="http://www.degrafa.com/2007>
<geometry>
<GeometryComposition>
<RegularRectangle width="{skinWidth}" height="{skinHeight}">
<fill>
<SolidFill color="#00ff00" />
</fill>
</RegularRectangle>
</geometry>
<mx:Script>
<![CDATA[
import mx.core.EdgeMetrics;
private var em:EdgeMetrics = new EdgeMetrics(0, 0, 0, 1);
private var headerHeight:Number = 0;
public override function styleChanged(styleProp:String):void{
headerHeight = getStyle("headerHeight");
em = new EdgeMetrics(0, headerHeight, 0, 1);// if i remove this line, the error goes away
}
public override function get borderMetrics():EdgeMetrics{
return em;
}
]]>
</mx:Script>
</GraphicRectangularBorderSkin>发布于 2010-04-15 00:31:07
显然,您需要使用GraphicPanelSkin作为基类,它将为您处理borderMetrics。
这里的文档:http://www.degrafa.org/docs/com/degrafa/skins/GraphicPanelSkin.html
https://stackoverflow.com/questions/2638430
复制相似问题