2010-12-21 4 views
5

कक्षा आकार में डायनामिक पैरामीटर कैसे पास करें कक्षा आकार में दो विधियां DrawCircle() और drawTriangle() शामिल हैं। प्रत्येक फ़ंक्शन तर्कों का अलग सेट लेता है। वर्तमान में, मैं पीडीई फ़ाइल को सीधे कॉल करके का आह्वान करता हूं। 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

<script> 
Shape shape = new Shape(); 
shape.drawCircle(10, 10, 3); 
</script> 

B.html

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

2) Iam Example2.pde का उपयोग कर

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

वर processingInstance है है; प्रसंस्करणInstance.rectangle (30, 20, 55, 55);

लेकिन यह काम नहीं कर रहा है। इन पैरामीटर को गतिशील रूप से एचटीएमएल से कैसे पास करें।

+0

यह राज्य के लिए सामने आप processing.js उपयोग कर रहे हैं कि सार्थक हो सकता है:

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

आप फोन करके अपने स्केच में इस डेटा का उपयोग कर सकते हैं: मूल्य उदाहरण में समाप्त करने के लिए – maxedison

उत्तर

1

यदि आपको लोड समय पर इन चरों में केवल पास करने की आवश्यकता है, तो ऐसा लगता है कि जेएस में कॉन्फ़िगरेशन ऑब्जेक्ट्स बनाना बहुत आसान होगा, जिसे आप अपने प्रोसेसिंग कोड में एक्सेस करते हैं। Accessing Javascript Objects from Processing देखें।

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

और अपने प्रसंस्करण कोड में, आप shapes चर का उपयोग कर सकते:

उदाहरण के लिए, अपने जे एस कैसा लग सकता है

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');