मेरे लिए काम किया गया दृष्टिकोण एसवीजी प्रस्तुत करने के लिए Reflex का उपयोग करना है। रिफ्लेक्स डीओएम ऑब्जेक्ट्स को वेब पेज पर प्रस्तुत करना और उन ऑब्जेक्ट्स पर माउस क्लिक का जवाब देना काफी आसान बनाता है। एसवीजी (कैनवास के बजाए) का उपयोग चयन और संपादन (आकार बदलने, चलने, रंग बदलने, हटाने) के लिए प्रारंभिक प्रदर्शन के बाद प्रस्तुत वस्तुओं तक पहुंच के लिए अनुमति देता है।
यहां तीन "प्रारंभ करना" उदाहरण हैं जो रिफ्लेक्स/svg का उपयोग करते हैं। इनमें से प्रत्येक में एक कार्यशील डेमो शामिल है (रीडेमे फ़ाइल में लिंक किया गया है)।
Render circles in locations determined by the circle-packing package
Interactive knight's tour animation.
Rotating 3D cube
यह देखते हुए कि इन उदाहरणों के आधार पलटा कर रहे हैं, वे सब एक एफआरपी कोडिंग शैली का उपयोग लिखा जाता है, लेकिन मैं इन कार्यक्रमों में से प्रत्येक के हिस्से हैं जो विशेष रूप को कम से कम करने की कोशिश की एफआरपी तकनीकों का उपयोग करता है।
उदाहरण के लिए, नाइट के टूर और घूर्णन घन दोनों में कोड के रिकर्सिव-डू ब्लॉक होते हैं जिसमें केवल कॉल देखने और अपडेट होते हैं।
rec
view modelOrientation
modelOrientation <- foldDyn update initialOrientation tick
नाइट के दौरे उदाहरण से:: दोनों मामलों में, कोड के इस ब्लॉक को देखने से प्रतिक्रिया स्थिति परिवर्तन के संचय (foldDyn अद्यतन)
के घूर्णन घन उदाहरण से सक्षम बनाता है
rec
startEvent <- view width height rowCount colCount board tour
tour <- foldDyn (update board) [] $ leftmost [startEvent, advanceEvent]
रिफ्लेक्स के साथ शुरू करने के लिए मुझे सबसे आसान तरीका मिल गया है reflex-platform github repository क्लोनिंग और उस भंडार में निहित प्रयास-रिफ्लेक्स स्क्रिप्ट चला रहा है - जैसा कि रिफ्लेक्स-प्लेटफ़ॉर्म
के लिए रीडेमे पर निर्दिष्ट है
सर्कल पैकिंग उदाहरण के लिए circle-packing package की आवश्यकता है। घूर्णन 3 डी घन उदाहरण के लिए matrix package की आवश्यकता होती है। इन संकुलों के उपयोग को सक्षम करने के लिए, उन्हें रिफ्लेक्स-प्लेटफॉर्म रीडेमे पर निर्दिष्ट अनुसार, कोशिश-रिफ्लेक्स चलाने से पहले संकल्प.निक्स में रिफ्लेक्स-प्लेटफ़ॉर्म में शामिल करें।
मुझे इसके लिए एक अच्छा जवाब जानना अच्छा लगेगा ... – Libby
@ लिबी तब सवाल उठाने के बारे में कैसे? :) तो यह अधिक ध्यान आकर्षित कर सकते हैं। – Daniel
किया गया :) इस सवाल के बारे में और सोचते हुए, जवाब शायद एल्म है - भले ही एल्म हास्केल नहीं है, फिर भी यह काफी करीब है कि आप इससे बहुत कुछ सीख सकते हैं और मूल रूप से जिस तरह से आप बात कर रहे हैं उसका उपयोग किया जाता है । – Libby