使用MXML组件通过数组设置图像

时间:2012-11-08 17:53:08

标签: actionscript-3 flex components mxml

我正在尝试在舞台上设置卡片图像。卡套装和值存储在一个数组中,我需要使用一个组件来设置图像。以下是我遇到问题的部分说明:  “在函数makeCard中,使用套装和值输入来构造用于此卡正面的文件名。将frontFile属性设置为此文件名。您可能还需要设置backFile,这对所有卡都是相同的。 “

以下是主要的MXML文件代码:

<fx:Script>
        <![CDATA[

            import spark.components.Image;

            public var suits:Array = ['clubs', 'diamond', 'heart', 'spade'];
            private var values:Array = ['2', '3', '4', '5', '6', '7', '8', '9', '10', 'jack', 'queen', 'king', 'ace'];

            private function init():void
            {
                for each (var suit:String in suits) {

                    for each (var value:String in values) {

                        var card:Card = new Card();
                        card.makeCard(suit, value);
                        card.turnDown();
                        card.addEventListener(MouseEvent.CLICK, flipCard);
                        playGrp.addElement(card);

                    }
                }
            }

            private function flipCard(e:MouseEvent):void
            {
                var card:Card = Card(e.currentTarget);
                card.turnOver();
            }

        ]]>
    </fx:Script>

    <s:TileGroup id="playGrp" requestedRowCount="4"
                 horizontalCenter="0" verticalCenter="0"/>

这是我到目前为止的组件代码:

<fx:Script>
        <![CDATA[

            //create variables for the front and back
            public var frontFile:String;
            public var backFile:String;

            //create function for making the car
            public function makeCard():void {

                frontFile = "asset/Cards_deck_" + + ".jpg";
                backFile =  "asset/Cards_back_" + + ".jpg";

            }

            //create function for turning the card over
            public function turnUp():void {

            }

            //create function for turning card over
            public function turnOver():void {

            }

            //create function for turning card down
            public function turnDown():void {

            }
        ]]>
    </fx:Script>

编辑:这是方向 什么进入卡组件? 对于每张卡,我们希望能够显示卡的正面或背面。这意味着每张卡片都应该有一个位置来存储有关哪个文件显示为正面的信息,以及要显示为背面的文件。

为此,请在Card组件中创建两个变量以存储文件名。您可以将这些变量称为frontFile和backFile。

现在让我们考虑一下我们的卡所需的方法。 再看一下应用程序文件。请注意,该应用程序假定它可以调用名为

的函数
makeCard(), passing it Strings to specify the suit and the value for this card
turnUp()
turnOver()

这意味着您需要为每个调用定义公共函数。当你在这里时,继续并定义一个名为turnDown的函数。

在makeCard函数中,使用套装和值输入来构造用于此卡正面的文件名。将frontFile属性设置为此文件名。您可能还想设置backFile,这对所有卡都是一样的。

在函数turnUp中,只需将卡的source属性设置为其frontFile属性中存储的String。

在函数turnDown中,将card的source属性设置为其backFile属性中存储的String。

在turnOver中,您需要检查以查看正在显示的文件,并更改来源以显示卡片的另一面。

0 个答案:

没有答案