我正在創建一個XML自定義紙牌遊戲,並且正在構建甲板並使它們可拖動,以便用戶可以將它們拖放到另一張牌的頂部。影片剪輯的多個實例的深度問題
我已經想出瞭如何構建卡組並放置駐留在庫中的影片剪輯的多個實例,我只是想不出讓每張卡都可拖動的方法。目前正在發生的事情是,甲板上的卡是唯一一個會拖動的卡,即使我點擊下面的卡也是如此。我研究了setChildIndex()
,但我認爲我沒有正確使用它。
我遇到的另一個問題是,當用戶點擊click_btn(僅用於測試命名)來構建需要一段時間才能構建的套牌時,是否可以加速?
然後,一旦用戶點擊第一張卡來拖動它,還有另一個漫長的等待?
文檔類(CardGame.as)
package library
{
import flash.display.*;
import flash.events.*;
import flash.net.*;
public class CardGame extends Sprite
{
/*
* variables
*/
private var _xml:XML;
private var _loader:URLLoader;
private var cardArray:Array;
private var activity:Activity;
/*
* constructor
*/
public function CardGame():void
{
_loader = new URLLoader();
_loader.addEventListene(Event.COMPLETE,buildArray);
_loader.load(new URLRequest("library/card.xml"));
click_btn.addEventListener(MouseEvent.CLICK,buildDeck);
}
/*
* metohods
*/
public function buildArray(e:Event):Array
{
cardArray = new Array();
_xml = new XML(_loader.data);
for(var i=0;i<_xml.card.length();i++)
{
if(_xml.card.face[i]=="activity")
{
cardArray.push({id:_xml.card.id[i],face:_xml.card.face[i],category:_xml.card.category[i],point:_xml.card.point[i],value:_xml.card.value[i]});
}
else if(_xml.card.face[i]=="event")
{
cardArray.push({id:_xml.card.id[i],face:_xml.card.face[i],category:_xml.card.category[i],point:_xml.card.point[i],value:_xml.card.value[i]});
}
else
{
trace("no card found");
}
}
return cardArray;
}
public function buildDeck(e:Event):void
{
for(var i=0;i<cardArray.length;i++)
{
if(cardArray[i].face == "activity")
{
activity = new Activity();
activity.x = 200;
activity.y = 150;
activity.id = i;
activity.name = "b"+i;
activity.buttonMode = true;
stage.addChild(activity);
activity.addEventListener(MouseEvent.MOUSE_DOWN,dragStart);
activity.addEventListener(MouseEvent.MOUSE_UP,dragStop);
}
}
}
public function dragStart(e:Event):void
{
activity.parent.setChildIndex(activity, numChildren - 1);
activity.startDrag();
}
public function dragStop(e:Event):void
{
this.stopDrag();
}
}
}
card.xml
<?xml version="1.0" encoding="iso-8859-1"?>
<cardgame>
<card>
<id>1</id>
<face>activity</face>
<catagory>Task</catagory>
<point>2</point>
<value>Change the rule.</value>
</card>
<card>
<id>21</id>
<face>event</face>
<catagory>Injury</catagory>
<point>-2</point>
<value>Injury due to animal/snake/insect bite-count 3.</value>
</card>
</cardgame>
的xml文件居然有64個活性卡項目和41個事件卡項目,但我修剪下來做它更容易。
@馬蒂亞斯,現在拖偉大工程:-)我唯一的問題是卡我拖延出現在其他人後面。有沒有辦法讓它在被拖動時出現在所有其他卡之上?謝謝 – Mike
另外Mattias,你是正確的圖形被沉重。我創建了一個簡單的盒子,並在它的地方使用它,並沒有猶豫,出色的想法:-) – Mike
當我執行你的代碼時,我沒有這個問題。我不得不改變一些東西來讓你的代碼工作。我將發佈我的代碼,以便您可以試用。 – Mattias