2015-02-23 134 views
0

我想在退出處理草圖時執行一些操作。我在論壇上發現方法stop()在應用程序退出之前調用。 我試過了,但在我看來,它永遠不會被調用。 這裏有個很小(不工作),例如:處理和停止()方法

void setup() 
{ 
size(100, 100); 
println("start"); 
} 

void draw() 
{ 
    //nothing here 
} 

void stop() 
{ 
    println("called stop()"); 
    super.stop(); 
} 

如果退出過在App X按鈕上的IDE或 的應用,通過停止按鈕,我從來沒有看到消息「叫停()」。 我試着用和不用super.stop()都沒有改變。 由於

處理2.2.1,在Linux的Debian喘息

+0

Crossposted:http://forum.processing.org/two/discussion/9548/stop-method-does-not-work – 2015-02-23 14:47:42

回答

1

的stop()函數是從PApplet延伸的Applet的事實的後遺症。除非您正在部署爲applet,否則stop()函數將永遠不會被調用。即使您正在部署爲applet,stop()函數仍然不能保證被調用!更多信息在PApplet API

假設您使用的是Java模式,您可能會考慮添加一個關機鉤,或者只是將WindowListener添加到您的框架。

+0

我查找了一些適用於Processing的示例,但沒有找到。在我看來,這個操作比預期的更復雜... – 2015-02-23 14:53:14

+0

@valerio_sperati我已經提到了2種方法。當你嘗試他們時發生了什麼? – 2015-02-23 15:07:15

+0

我在谷歌上查找了一些關於「shutdown hook」或「WindowListener」應用於Processing的例子,但還沒找到。繼續搜索! – 2015-02-23 15:15:14

1

除了凱文的答案,你的覆蓋的exit()方法:

void setup(){ 
    println("start"); 
} 
void draw(){} 
void exit(){ 
    println("stop");//do your thing on exit here 
    super.exit();//let processing carry with it's regular exit routine 
}