我在 Flash Builder 4.6 中开始了一个新项目,在朝着一个方向而不是正确的方向前进之前需要一些建议。
基本上,我在 Flash Builder 中的应用程序是用于移动设备和平板电脑的,所以我需要知道如何创建一个能够精确固定任何设备宽度的棋盘。我不知道我怎么能在 Flex 中做到这一点。
任何人都可以给出一个想法或提供一个我可以使用的例子吗?
谢谢。
我在 Flash Builder 4.6 中开始了一个新项目,在朝着一个方向而不是正确的方向前进之前需要一些建议。
基本上,我在 Flash Builder 中的应用程序是用于移动设备和平板电脑的,所以我需要知道如何创建一个能够精确固定任何设备宽度的棋盘。我不知道我怎么能在 Flex 中做到这一点。
任何人都可以给出一个想法或提供一个我可以使用的例子吗?
谢谢。
为什么不使用 100% 高度和宽度的 TileGroup/TileLayout?然后将 rowHeight 设置为 {this.height / ROWS}(ROWS 是棋盘上的行数)并对 columnWidth 执行相同的操作。您甚至可以使用 HorizontalGap 和 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% 执行颜色,尽管这样做可能要容易得多。