我正在使用 MVC 制作纸牌游戏。我知道在我的情况下使用 MVC 是多余的,我使用它是因为我需要学习它。
这是我的问题:在我的模型中,我正在导入多个图像,这些图像存储在一个数组中(我的卡片组)。然后我需要在我的视图中访问这个数组以便 addChild 每个图像。
模型 :
package com {
import flash.events.*;
import flash.display.*;
import flash.net.*;
public class Model extends EventDispatcher {
var imgcontainer:Loader = new Loader();
var i:int=0;
var _setCartes:Array;
public function Model(target:Stage){
_setCartes = new Array();
ImportImg();
}
public function ImportImg():void{
while (i<13){
imgcontainer.load(new URLRequest("img/"+i+".png"));
_setCartes.push(imgcontainer);
i+=1;
trace(_setCartes);
}
}
public function get setcartes():Array {
return _setCartes;
}
}
}
在我看来,我有这个方法:
private function doChange(ev:Event):void {
removeChild(_btncontainer);
_setCartes = _model.setcartes;
addChild(_setCartes[5]);
_setCartes[5].x=100;
addChild(_setCartes[3]);
_setCartes[3].x=300;
}
有两件事出错:
首先,我的数组的每个元素都显示相同的图像。如果我 addChild _setCartes[5] 或 _setCartes[3] 或 _setCartes[0] 或其他任何东西,它将始终显示相同的卡片,就好像它在我的数组中存放了 13 x 相同的图像一样。
其次,我不能同时 addChild _setCartes[5] 和 _setCartes[3],只有第二个会显示。我尝试将数组的每个元素存储在不同的 Sprite 中,并为每个 Sprite 添加Child,但它没有显示任何内容。当我跟踪 Sprite 时,它显示“Object Sprite”(当我跟踪数组时,它显示 13 个“Object Loader”),但舞台上什么也没有。
我不明白我做错了什么。
提前感谢您的帮助,朱西。