2017-06-15 59 views
0

當您雙擊AnyLogic中的代理時,它將導航到該代理的內部,以便您可以看到其狀態,變量等。有沒有辦法以函數調用而不添加ViewArea以編程方式執行此操作?我目前的解決辦法是增加一個ViewArea然後用viewArea.navigateTo()每當我需要導航的代理,但似乎過度做多次,並在多個代理類型。導航到AnyLogic中的代理/代理的默認視圖?

回答

1

每個代理都具有默認視圖區域對象,其名稱爲_origin_VA。所以,你可以調用像agent._origin_VA.navigateTo();這個區域在圖形編輯器中是不可見的,但是你可以在代碼完成時找到它。

2

它曾經是,當你雙擊了在AnyLogic的代理,將導航到該代理的內部,所以你可以看到它的狀態,變量等

你是什麼意思嗎?您仍然可以雙擊嵌入的代理以直接導航到它們。

我當前的解決方案是添加一個ViewArea,然後使用viewArea.navigateTo(),無論何時我需要導航到代理,但似乎過多地執行多次和多個代理類型。

那是怎樣做到這一點編程。而不是在每個代理複製它,你需要它,使用它具有ViewArea一個超代理和導航功能,因此您可以(與你的代理人AgentAAgentB延長ViewAreaAgent例如,代理ViewAreaAgent)重用跨越代理。

我曾希望避免子類化:當構建包含連續的2D和GIS環境的分層模型時,它會導致我們遇到各種各樣的問題。也許8.1中不再是這種情況(最近從7.3.7升級)。

什麼樣的問題(更多普遍關心的)?我認爲沒有任何子類化的共享視圖區域功能的簡單方法。 (更普遍地在Java中,你可以使用之類的接口和對象組合,而不是 繼承做同樣的事情---看到Bloch's Effective Java(特別是項目16第2版)---但我不認爲這能有效地工作這裏因爲視圖區域需要位於要導航到的代理中。)

+0

我們對此深感抱歉。我澄清了。我希望避免子類化:它在構建包含連續的2D和GIS環境的分層模型時會導致我們遇到各種各樣的問題。也許8.1中不再是這種情況(最近從7.3.7升級)。 –

相關問題