处理:为什么这个草图在Javascript模式下不起作用?

时间:2014-03-27 18:24:33

标签: javascript processing

出于某种原因,我不确定原因,我的处理草图在JavaScript模式下无法显示。但是,在Java模式下,它运行的是它的意图。我非常确定使用的所有内容都在Processing API中,所以我真的不知道为什么它不起作用。

该计划的纲要。基本上,我不得不创建一个股票代码,文本从屏幕右下方移动到一个恒定循环的左边。

股票代码:

Stock[] quotes = new Stock[12];
float t=0;
PFont text; 

void setup() {
  size(400,200);
  //Importing "Times" font 
  text = createFont( "Times" ,18,true);

 //Assigning Strings and Float values to Stock array index
  quotes[0] = new Stock("ADBE",68.60);
  quotes[1] = new Stock("AAPL",529.36);
  quotes[2] = new Stock("ADSK",51.41);
  quotes[3] = new Stock("CSCO",21.87);
  quotes[4] = new Stock("EA",30.17);
  quotes[5] = new Stock("FB",67.07);
  quotes[6] = new Stock("GOOG",1201.52);  
  quotes[7] = new Stock("HPQ",31.78);  
  quotes[8] = new Stock("INTC",25.41);  
  quotes[9] = new Stock("MSFT",40.49);  
  quotes[10] = new Stock("NVDA",18.56);  
  quotes[11] = new Stock("YHOO",38.24);    

  //Assigning Position of indexs using setX method from Stock class
  float x = 0;
  for (int i = 0; i < quotes.length; i++) 
  {
    quotes[i].getX(x);
    x = x + (quotes[i].width()); 
  }
  t = x; 
}

void draw() {
  background(55);
  //Rendering of Text using trans and show functions from Stock class
  for (int i = 0; i < quotes.length; i++) 
  {
    quotes[i].trans();
    quotes[i].show();
  }
  //Transparent Rectangl;e
  noStroke();
  fill(10,10,10,127);
  rect(0,164,width,35);
}

库存:

class Stock {
  String stockName; 
  float stockNum;     
  float x;     
  String show; 

  Stock(String n, float v) 
  {
    stockName = n;
    stockNum = v;

    show = (stockName + " " + stockNum + "   ");
  }

  //Sets position of each index
  void getX(float x_) 
  {
    x = x_;
  }
 //Moves text 
  void trans() 
  {
    x = x - 1;
    if (x < width-t) 
    {
      x = width;
    } 
  }

  //Renders Text
  void show() 
  {
    textFont(text);
    textAlign(LEFT);
    fill(255);
    text(show,x,height-10); 
  }
  //Records and returns width of index
  float width() 
  {
    textFont(text);
    return textWidth(show); 
  }
}

1 个答案:

答案 0 :(得分:0)

两件事:

  1. 根据Processing.js页面,它不适用于大多数Java,所以 你需要小心你使用的库。从他们的 Quick Start页面:

      

    Processing.js与Processing兼容,但不是,而且会   永远不会与Java完全兼容。 如果您的草图使用函数或   未定义为Processing的一部分的类,它们不太可能工作   与Processing.js。类似,编写的库   处理是用Java而不是Processing编写的   可能行不通。

  2. 即使您使用的库受到支持,您也必须非常 在命名变量时要小心,因为Javascript是一个 无类型语言可能导致您的变量名称冲突 在使用Java编写处理时通常不会担心 模式(或直接在Java中),因为它是一种打字语言。看到 Processing.js's note就此而言。