使用矢量绘制的数字

时间:2011-04-09 22:01:17

标签: flash actionscript-3 integer flash-cs4

我想使用我自己绘制的数字代表一个数字,但不知道如何实现它。如何显示具有这些数字的整数的等价物?如果有必要将它们放在一个平铺模式中,考虑到旧游戏的工作原理对我有意义,那么我会使用哪些代码在每个游戏之间切换?或者还有另一种更好的方法吗?此外,我需要数字能够调整到数字中的位数并从左到右读取(因此10中的1与1合1在同一位置)。谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

通过switch / case语句运行这些数字非常简单。并不是那么有效,请注意,但它确实有用......

private function getCustomInt(targetInt:int):DisplayObject
{
    var graphic:DisplayObject;    
    switch(targetInt)
    {
        case 0:
            graphic = new Zero(); //link to your embedded sprite/ mc /whatever
            break;
        case 1:
            graphic = new One();
            break;
        //etc etc
    }

    return graphic;
}

如果这些是精灵表的一部分,您可以在父PDF中设置子图形的位置,该父图形已正确设置了scrollRect。无论如何。一堆方法来做到这一点 - 那就是一个 - - -

答案 1 :(得分:0)

您可以轻松使用sprite sheet。只需将数字从0到9对齐,并保留一个数组,其中包含精灵(a[0] = 0, a[1] = 200, a[2] = 350)上每个数字的位置,然后您就可以检索精灵上数字的位置和宽度,就像这样:

//for 1
xPosition = a[1];
width = a[2]-a[1]; 

您可以使用这两个来绘制一个蒙版并隐藏精灵的其余部分,以便只显示所需的数字。你这种方式只能获得一位数。然而,将所有这些放在一个类中,并在您需要的位数上循环。这就是你如何找出一个数字有多少位数:

var value:Number
var digitsNumber:Number =Math.ceil(Math.log(value)/Math.LN10) + 1;

值,这是你的'号码',例如。 234,23132 4334等

相关问题