你必須自己創建一個鏈接產卵區域,因爲草圖不是網頁。一些代碼讓你開始:
ArrayList links = new ArrayList();
void setup()
{
size(window.innerWidth,window.innerHeight);
links.add(new Link("About...",30,height/2,
"Arial",16,"www.stackoverflow.com");
}
void draw()
{
fill(0,0,0);
text("About",760,312);
}
class Link
{
String ltext,fontname,url = "";
int x,y,tsize=0;
float tw=0;
Link(String t, int _x, int _y, String fn, int ts, String _url) {
ltext=t; x=_x; y=_y;
fontname = fn; tw=textWidth(ltext); tsize=ts;
url=_url; }
draw() { textFont(createFont(fontname,tsize)); fill(0); text(ltext, x, y); }
void mouseOver(int xy, int yo) { return x<xo && y-ts<yo && xo<x+tw && yo<y; }
}
void mousePressed()
{
for(Object o: links)
{
Link l = (Link) o;
if(l.mouseOver(mouseX,mouseY))
{
// This is a plain javascript instruction - to do this
// properly, use a js interface instead, as described in
// http://processingjs.org/reference/articles/PomaxGuide#sketchtojs
location = l.url;
}
}
}
我認爲問題是關於PJS,而不是正常的Processing。 – muffinista 2011-05-07 14:57:50
這是,但這並沒有改變答案; Processing.js背後的想法是讓你編寫一個處理「草圖」並在網絡上運行它。我對這個答案進行了一次修正:我們可以使用Processing「link()」方法代替純js代碼「location = l.url」:「if(l.mouseOver(mouseX,mouseY)){link l.url);}「 – 2011-05-14 19:16:50
你說的沒錯,我糾正了。 ArrayList向我扔了一個循環,但我現在看到它是允許的。 – muffinista 2011-05-14 22:36:54