我意识到将不同类型的对象放入一个集合中通常是一个坏主意,我可以通过将类型设置为“对象”来做到这一点,但是我有一种情况,我想不出替代方案,并且希望别人可以。
情况:在游戏的回合结束时,我希望玩家有效地从一副牌中拿起一张牌。该卡将是三种类型的卡之一。通常这张牌会进入玩家的手中并允许玩家执行标准动作,但我希望玩家有机会获得一张特殊的卡片,其动作特定于该卡片,并且有机会玩家拿到一张牌,它会立即采取行动而不是进入玩家的手上。这些类型的卡片没有任何共同点,所以拥有一个通用界面似乎没有意义,但我希望它们在甲板上随机混合,所以我想把它们都放在一个集合中。
有人有任何设计建议吗?(我对 OO 设计比较陌生)
我正在使用 node.js 从 JSON 中的外部 API 接收数百个数据对象,如下所示:
[
{
"ID": "6548532",
"Status": "active",
"Updated": "2014-11-24T07:32:04-07:00",
"created": "2014-09-15T19:42:37-07:00",
"URL": "www.example.com",
"Categories": [
"cat-a",
"cat-b"
],
"Price": "10.00"
},
{
"ID": "8558455",
"Status": "inactive",
"Updated": "2014-10-24T07:32:04-07:00",
"created": "2014-09-15T19:42:37-07:00",
"URL": "www.example.com",
"Categories": [
"cat-c",
"cat-r"
],
"Price": "20.00"
}
....
]
Run Code Online (Sandbox Code Playgroud)
我想将对象分开,以便我只能写入必须写入"Status": "active"数据库的对象。我知道我可以在使用之前使用字符串操作来做到这一点,JSON.parse但我想知道是否有更好的方法将 JSON 文件拆分为它包含的对象并将它们保留在一个数组中,然后我可以处理。
我正在使用精益查询来更快地从数据库中检索大型数据集。检索到的大部分数据都被使用但没有修改或保存,因此精益查询很好,但我需要使用模式方法修改和保存一小部分对象。
当我迭代精益查询的结果时,是否可以为这些结果创建猫鼬对象,从而将大部分结果保留为精益格式?
我知道的唯一方法是使用数据创建新对象,然后设置isNew为 false,但这需要我为此目的创建一个构造函数,并且看起来有点 hacky。所以我想知道是否存在基本上相反的情况toObject()
单击按钮时,我正在使用Spritesheet和关键帧对按钮上的图像进行动画处理。
单击按钮时,我希望帧沿一个方向运行,并将按钮保留在Spritesheet中的最后一个图像上;再次单击按钮时,我希望相同的帧向后运行,将按钮保留在第一个图像上精灵表。
我目前正在尝试使用jquery在单击该按钮时将按钮上的类更改为动画类,但这似乎不起作用。
小提琴:http : //jsfiddle.net/CGmCe/10295/
JS:
function animate(){
$('.hi').addClass('animate-hi');
}
Run Code Online (Sandbox Code Playgroud)
CSS:
.hi {
width: 50px;
height: 72px;
background-image: url("http://s.cdpn.io/79/sprite-steps.png");
}
.animate-hi {
animation: play 2s steps(10);
}
@keyframes play {
from { background-position: 0px; }
to { background-position: -500px; }
}
Run Code Online (Sandbox Code Playgroud) 我有一个在片段之间使用标签导航的应用程序。这些片段之一可以选择打开一个新活动。当我使用此活动中的内置设备后退按钮时,它会返回到选择了上一个片段选项卡的选项卡式活动。
我通过使用以下命令向应用程序中活动的操作栏添加了后退按钮:
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
Run Code Online (Sandbox Code Playgroud)
并在清单中设置父活动,但是此按钮始终导航回到父活动的第一个标签,而不是先前可见的那个标签。
如何使此后退按钮的行为与设备的后退按钮相同?