我正在Flash Builder 4.6中开始一个新项目,需要一些建议才能向一个方向而不是正确的方向。
基本上,我在Flash Builder中的应用程序适用于移动设备和平板电脑,因此我需要知道如何创建一个能够精确修复任何设备宽度的棋盘。我不知道我怎么能在Flex中完全做到这一点。
有人可以提出想法或提供我可以使用的例子吗?
感谢。
答案 0 :(得分:0)
为什么不使用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%完成颜色,但这可能要容易得多。