Для начала лучше сказать, что я новичок во Flex/OOP в целом. Я пытался добавить собственный класс на основе StrokedElement, чтобы реализовать простую сетку (не похожую на существующие Flex Grids - это было бы просто для отображения - не удерживая элементы и т.д...)
Мой текущий класс выглядит так:
package ui.helpers
{
import flash.display.Graphics;
import spark.primitives.supportClasses.StrokedElement;
public class SGrid extends StrokedElement
{
public function SGrid()
{
super();
}
private var _gridSize:Number;
[Inspectable(category="General", minValue="1.0")]
public function get gridSize():Number
{
return _gridSize;
}
public function set gridSize(value:Number):void
{
if (value != _gridSize)
{
_gridSize = value;
invalidateSize();
invalidateDisplayList();
invalidateParentSizeAndDisplayList();
}
}
override protected function draw(g:Graphics):void {
for(var x:int; x < width; x+= _gridSize) {
g.moveTo(x,0);
g.lineTo(x,height);
}
for(var y:int; y < height; y+= _gridSize) {
g.moveTo(0,y);
g.lineTo(width,y);
}
}
}
}
Который взят из Flex spark.primatives.rect - все работает нормально, но когда я добавлю его в свое приложение, я ожидаю сделать это:
<helpers:SGrid id="gridOne" width="100" height="200" gridSize="10">
<s:stroke>
<s:SolidColorStroke color="0xCCCCCC" alpha="0.8" />
</s:stroke>
</helpers:SGrid>
но на самом деле это работает вместо этого:
<helpers:SGrid id="gridOne" width="100" height="200" gridSize="10">
<helpers:stroke>
<s:SolidColorStroke color="0xCCCCCC" alpha="0.8" />
</helpers:stroke>
</helpers:SGrid>
Если я использую s:stroke, я получаю ошибки. Очевидно, я рад, что это работает, но я пытаюсь понять, в чем здесь разница?