2010-12-21 2 views
5

클래스 Shape에는 두 가지 방법 인 drawCircle() 및 drawTriangle()이 포함되어 있습니다. 각 함수는 서로 다른 인수 집합을 사용합니다. 현재 pde 파일을 직접 호출하여 이것을 이라고 부릅니다. 끌기 기능을 전달할 인수를 제어해야하는 경우 HTML 파일에서이 인수를 직접 전달하는 방법? 1) Example.html는 (현재 버전)동적 매개 변수를 .pde 파일에 전달하는 방법

<script src="processing-1.0.0.min.js"></script> 
<canvas data-processing-sources="example.pde"></canvas> 

2) Example.pde이

class Shape { 
     void drawCircle(intx, int y, int radius) { 
       ellipse(x, y, radius, radius); 
     } 
     void drawTriangle(int x1, int y1, int x2, int y2, int x3, int 
y3) { 
       rect(x1, y1, x2, y2, x3, y3); 
     } 
    } 
    Shape shape = new Shape(); 
    shape.drawCircle(10, 40, 70); 

내 HTML 파일에서이 같은 뭔가를 찾고있다을 갖도록 내가 할 수 이동 별도의 파일에 모든 기능 (당신 자바에서 그것을 할 것입니다 방법에 많은 유사) 다른 모양을 그릴 다른 인수로 전화 A.html

,196,321 Example2.pde를 사용하여 0

B.html

<script> 
Shape shape = new Shape(); 
shape.drawTriangle(30, 75, 58, 20, 86, 75); 
</script> 

2) 스피

void setup() { 
    size(200,200); 
    background(125); 
    fill(255); 
} 

    void rectangle(int x1, int y1, int x2, int y2) { 
      rect(x1, y1, x2, y2); 
} 

내 Example2.html가

VAR의 processingInstance을 가지고있다; processingInstance.rectangle (30, 20, 55, 55);

하지만 작동하지 않습니다. html에서 동적으로 이러한 매개 변수를 전달하는 방법.

+0

-앞까지 당신이 processing.js를 사용한다는 것은 가치가있을 수 있습니다 당신은 호출하여 스케치에서이 데이터에 액세스 할 수 있습니다

<canvas data-processing-myvar="value" data-processing-sources="/assets/mysketch.pde"></canvas> 

: 값은 인스턴스에 종료합니다 – maxedison

답변

1

로드 할 때 이러한 변수 만 전달하면 처리 코드에서 액세스 할 수있는 JS에서 구성 객체를 만드는 것이 훨씬 쉬워 진 것 같습니다. Accessing Javascript Objects from Processing을 참조하십시오.

var shapes = [ 
    {shape:"circle", x:10, y:150, radius: 70} 
]; 

하고 처리 코드에서

, 당신은 shapes 변수에 액세스 할 수 있습니다 : 같은

예를 들어, JS는 보일 수 있습니다

void draw() { 
    shape = new Shape(); 
    fill(0); 
    for (int i=0; i<shapes.length; i++) { 
     if (shapes[i].shape=="circle") { 
      shape.drawCircle(shapes[i].x, shapes[i].y, shapes[i].radius); 
     } 
     // etc 
    } 
} 

내 인상이하는 것보다 훨씬 쉽다이다 실제로 자바 스크립트에서 처리 인스턴스를 제어합니다.

0

당신이 원하는 것을 달성하기 위해, 당신은 시도 할 수 있습니다 :

// Assuming: <canvas id="internal" data-processing-sources="internal.pde"> 
instance = Processing.getInstanceById('internal'); 
instance.internalFunction(); // Call to internalFunction() inside internal.pde 
2

당신은 캔버스 요소의 데이터 속성을 사용하여 처리하는 인스턴스에 데이터를 전달할 수 있습니다.

예를 들어, myvar를 원할 경우.

var myVarInSketch = this.param('myvar');