0

我在 Flash Builder 4.6 中开始了一个新项目,在朝着一个方向而不是正确的方向前进之前需要一些建议。

基本上,我在 Flash Builder 中的应用程序是用于移动设备和平板电脑的,所以我需要知道如何创建一个能够精确固定任何设备宽度的棋盘。我不知道我怎么能在 Flex 中做到这一点。

任何人都可以给出一个想法或提供一个我可以使用的例子吗?

谢谢。

4

1 回答 1

0

为什么不使用 100% 高度和宽度的 TileGroup/TileLayout?然后将 rowHeight 设置为 {this.height / ROWS}(ROWS 是棋盘上的行数)并对 columnWidth 执行相同的操作。您甚至可以使用 Horizo​​ntalGap 和 verticalGap 属性来显示黑色背景,该背景可以用作每个框之间的分隔符(尽管您必须在 rowHeight 和 columnWidth 计算中考虑这一点,显然)

我会通过 AS3 填充屏幕,而不是 Flex。这样的事情是我的想法。

var columnCount:int = 0;
var rowCount:int = 0;
var boxes:int = 64; //however many boxes on a chess board goes here
for ( var i:Number = 0; i < boxes; i+ ){
    var rect:Rect = new Rect();
    var color:SolidColor;
    rect.percentHeight = 100;
    rect.percentWidth = 100;
    rect.name = i.toString(); //this will make it easier to keep track of which box is which later on
    if ( rowCount % 2 == 1 ) {
        if ( i % 2 == 1 ) color = 0x000000;
        else color = 0xffffff;
    }
    else {
        if ( i % 2 == 1 ) color = 0xffffff;
        else color = 0x000000;
    }
    this.rect.fill = color;
    this.tileGroup.addElement(rect);

    if ( columnCount == 7 ) {
        columnCount = 0;
        rowCount++;
    }
    else {
        columnCount++;
    }
}

这完全不在我的脑海中并且未经测试,所以我确信有一两个错误,但你知道它是如何工作的。

编辑:作为事后的想法,您可能可以在不使用 rowCount/columnCount 变量的情况下以数学方式 100% 执行颜色,尽管这样做可能要容易得多。

于 2012-09-13T00:16:55.067 回答