我想在as3中複製相同的東西,我用普通列表創建了它,我盡我最大努力在FLEX中完成它,但沒有運氣,我的整個應用程序都在flex ,我所需要的只是當我拖動列表的同時動畫列表,我不知道從哪裏開始,我已經嘗試了很多東西,但運氣不好,因此迫切希望通過堆棧溢出來請求幫助。任何幫助,將不勝感激在動作拖動動畫和混洗列表
0
A
回答
1
希望這個例子提供了一個主意,開始與:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
verticalAlign="middle" horizontalAlign="center"
height="100%" width="100%">
<mx:Script>
<![CDATA[
import mx.containers.GridItem;
import mx.controls.Button;
import mx.core.DragSource;
import mx.events.*;
import mx.managers.DragManager;
private var sourceRow:int;
private var sourceCol:int;
private var destinationRow:int;
private var destinationCol:int;
private var sourceIndex:int;
private var destinationIndex:int;
private const COLUMN_SIZE:Number = 1;
private function dragInit(event:MouseEvent):void
{
if(event.buttonDown && !DragManager.isDragging)
{
var button:Button = event.currentTarget as Button;
var dragSource:DragSource = new DragSource();
dragSource.addData(button, 'button');
DragManager.doDrag(button, dragSource, event);
sourceRow = (event.currentTarget.parent.parent.parent as Grid).getChildIndex(event.currentTarget.parent.parent);
sourceCol = (event.currentTarget.parent.parent as GridRow).getChildIndex(event.currentTarget.parent);
sourceIndex = sourceRow * COLUMN_SIZE + sourceCol;
}
}
private function dragEnter(event:DragEvent): void
{
var target:GridItem = event.currentTarget as GridItem;
if (event.dragSource.hasFormat('button'))
{
DragManager.acceptDragDrop(target);
DragManager.showFeedback(DragManager.MOVE);
trace("Drag Enter....");
destinationRow = (target.parent.parent as Grid).getChildIndex(target.parent);
destinationCol = (target.parent as GridRow).getChildIndex(target);
destinationIndex = destinationRow * COLUMN_SIZE + destinationCol;
}
if(destinationIndex > sourceIndex)
{
var targetGridItem:GridItem = new GridItem();
for(var i = sourceIndex; i< destinationIndex; i++)
{
targetGridItem = getGridItemByIndex(i);
targetGridItem.addChildAt(getGridItemByIndex(i+1).getChildAt(0),0);
}
}
else if(destinationIndex < sourceIndex)
{
var targetGridItem:GridItem = new GridItem();
for(var i = sourceIndex; i > destinationIndex; i--)
{
targetGridItem = getGridItemByIndex(i);
targetGridItem.addChildAt(getGridItemByIndex(i-1).getChildAt(0),0);
}
}
sourceIndex = destinationIndex;
}
private function getGridItemByIndex(i:int):GridItem
{
var row:int = i/COLUMN_SIZE;
var col:int = i%COLUMN_SIZE;
return (grid.getChildAt(row) as GridRow).getChildAt(col) as GridItem;
}
private function dragDrop(event:DragEvent): void
{
var target:GridItem = event.currentTarget as GridItem;
var button:Button = event.dragSource.dataForFormat('button') as Button;
target.addChild(button);
}
]]>
</mx:Script>
<mx:Grid id="grid" >
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="88" height="88" dragEnter="dragEnter(event)" dragDrop="dragDrop(event)"
backgroundColor="black" verticalAlign="middle" paddingLeft="4"
verticalScrollPolicy="off" horizontalScrollPolicy="off">
<mx:Button label="A" width="80" height="80" mouseMove="dragInit(event)"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="88" height="88" dragEnter="dragEnter(event)" dragDrop="dragDrop(event)"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
backgroundColor="blue" paddingLeft="4" verticalAlign="middle">
<mx:Button label="D" width="80" height="80" mouseMove="dragInit(event)"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="88" height="88" dragEnter="dragEnter(event)" dragDrop="dragDrop(event)"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
backgroundColor="green" paddingLeft="4" verticalAlign="middle">
<mx:Button label="G" width="80" height="80" mouseMove="dragInit(event)"/>
</mx:GridItem>
</mx:GridRow>
<mx:GridRow width="100%" height="100%">
<mx:GridItem width="88" height="88" dragEnter="dragEnter(event)" dragDrop="dragDrop(event)"
horizontalScrollPolicy="off" verticalScrollPolicy="off"
backgroundColor="green" paddingLeft="4" verticalAlign="middle">
<mx:Button label="J" width="80" height="80" mouseMove="dragInit(event)"/>
</mx:GridItem>
</mx:GridRow>
</mx:Grid>
</mx:Application>
相關問題
- 1. Android動畫動畫列表動畫
- 2. 拖動「頁面」動畫
- 3. 在RecyclerView列表中拖動並滑動
- 4. 列表框拖動在wpf
- 5. 列表視圖和動畫
- 6. 如何在Kotlin中動畫製作動畫列表?
- 7. 從混洗列表視圖中打開活動
- 8. 拖延CSS3動畫
- 9. html5 - 拖動畫布
- 10. GWT拖放動畫
- 11. jquery拖放動畫
- 12. Qt拖放動畫
- 13. SAPUI5和JQuery可拖動 - 拒絕混合
- 14. QListView - 混合拖動模式
- 15. 兩個可拖動和排序列表
- 16. ListView拖動列表視圖
- 17. HTML/CSS/JS拖動表列
- 18. 拖放分組動畫不起作用
- 19. 混合列表活動
- 20. Android中的對象的動畫/拖動
- 21. Windows 7動畫鼠標拖動事件
- 22. 提高jQuery拖動動畫的性能
- 23. iOS Google地圖標記拖動動畫
- 24. 動畫在Android和活動
- 25. HTML5畫布顯示和拖動圖像
- 26. 拖動,拖放和水平滾動
- 27. RGBA顏色混濁動畫表達
- 28. 動畫的表達式混合
- 29. 使用動畫製作動畫在圓圈中填充動畫
- 30. 「googlemaps」拖動html5畫布
這將涉及許多步驟。您需要哪些幫助?處理點擊事件?拖動?交換?重新編號?移動瓷磚?這個問題太廣泛了,因此可能會被標記爲脫離主題。編輯更詳細的問題和你最好的嘗試解決你自己的問題,以改善這個問題。 –