2017-01-30 21 views
0

无论出于何种原因,在我使用selectOutput()选择文件后,Processing似乎找不到回调函数。这里是我的代码,我正在试图保存文件的一部分:处理程序无法从保存对话框中找到回调函数

void saveProjectDialog() { // Shows a save file dialog 
    JSONObject header = new JSONObject(); 
    header.setString("name", proj_name); 

    selectOutput(getLang("SaveDialog"), "saveProject"); 
} 

void saveProject(File selection) { // Save file dialog callback 
    if (selection == null) { 
    println("Save dialog was closed, canceled save."); 
    } else { 
    println("Saving to " + selection.getAbsolutePath()); 
    saveJSONArray(project, selection.getAbsolutePath()); 
    println("Construction saved!"); 
    } 
} 

当我选择的道路,这是打印到控制台:

saveProject() could not be found 

什么是错我的代码?

+0

您正在使用哪种版本的Processing?我刚刚测试过3.2.3,它按预期工作 –

+0

什么是getLang()函数和proj_name和project变量?你可以请硬编码并发布[mcve]吗? –

+0

'getLang()'是一个从JSON文件中获取字符串的函数。 'proj_name'是一个用于项目名称的字符串。 'project'是一个保存对象的JSONArray - 形状(现在的点)。这纯粹是我想要保存的数据,但我正在讨论'selectOutput()'的问题。我正在使用Processing 3.2.3,我今天会更新到3.2.4。你可以在我的GitHub上看到整个代码,回购'liquid600pgm/geometroid-pi' – lqPGM

回答

0

使用这种测试素描工作:

JSONArray project = new JSONArray(); 

String proj_name = "test"; 

void saveProjectDialog() { // Shows a save file dialog 
    JSONObject header = new JSONObject(); 
    header.setString("name", proj_name); 

    selectOutput(getLang("SaveDialog"), "saveProject"); 
} 

void saveProject(File selection) { // Save file dialog callback 
    if (selection == null) { 
    println("Save dialog was closed, canceled save."); 
    } else { 
    println("Saving to " + selection.getAbsolutePath()); 
    saveJSONArray(project, selection.getAbsolutePath()); 
    println("Construction saved!"); 
    } 
} 

void setup(){ 
    saveProjectDialog(); 
} 

String getLang(String s){ 
    return s; 
} 

仔细检查值proj_namegetLang()结果。

相关问题