描述:如何延遲現場顯示的數據?
我有一個StackPane作爲父容器(顯示器)和我的部件延伸地區並保持在的ConcurrentLinkedQueue。組件的顯示不是問題,即使動畫工作正如我想要的與時間軸同步(時間軸記錄整個過程,例如2分鐘 - >圓形彈出以及一些衰落+過渡等)。直到現在都很好。
現在我的問題來了:首先,我想要消耗並播放此組件以從顯示屏和隊列中將其刪除。
第二件事,現在當我運行這個,我有兩個組件,他們在同一時間並行運行,即使他們從隊列輪詢(我不明白)。所以我需要一些延遲或等待,直到第一個組件被播放,然後刪除這個組件並播放下一個組件。
任何建議都會很棒!
//show message
public void showMessages() {
while(!messageQueue.isEmpty()) {
playMessage(messageQueue.poll());
}
}
/**
* Searches for the source and target component, finds the connection points and prepares the message to be played
* @param mess Visual message node, that will appear on dashboard
* If no source and target component will be found this will return without doing anything
*/
public void playMessage(MessageNodeVGT mess) {
//get the source and the target of the message
CompNodeVGT source=getComponent(mess, SOURCE);
CompNodeVGT target=getComponent(mess, TARGET);
if(source==null || target == null) {
return;
}
Point2D sourcePoint=get2DPoint(source.impl_getShape(),target.impl_getShape());
Point2D targetPoint=get2DPoint(target.impl_getShape(),source.impl_getShape());
mess.setSourceCoordinates(sourcePoint);
mess.setTargetCoordinates(targetPoint);
instance.getChildren().add(mess.createPath());
instance.getChildren().add(mess);
mess.play();
}
對於你的第一個問題,你不能從* PARENT *節點中刪除組件嗎?對於你的第二個問題,向我們展示一些代碼! – ItachiUchiha
我從父級中刪除組件,但在完成動畫之前將其刪除。關於代碼:該項目相當大,我會嘗試回來一些相關的代碼。 – Edwin
我可以在哪裏刪除組件的代碼? – ItachiUchiha