2009-11-25 18 views
8

से किसी ऑब्जेक्ट को "स्केल" करने के लिए मैट्रिक्स का उपयोग करके एएस 3 यहां कुछ ऐसा है जो मैं एक्शनस्क्रिप्ट 3/फ्लेक्स में डिस्प्ले ऑब्जेक्ट्स से संबंधित पता लगाने की कोशिश कर रहा हूं। मान लें कि आपके पास एक डिस्प्ले ऑब्जेक्ट है जो पंजीकरण बिंदु शीर्ष बाईं ओर है और आप इसे अपने केंद्र (डिस्प्ले ऑब्जेक्ट के बीच) से स्केल करना चाहते हैं, आप इसे flash.geom.Matrix क्लासएएस 3 अपने "केंद्र"

से आसानी से कैसे प्राप्त कर सकते हैं

आपकी मदद के लिए धन्यवाद

उत्तर

8

यह ऑब्जेक्ट को स्केल/रोटेशन के वांछित केंद्र में अनुवाद करके किया जाता है, स्केल/घुमाएं और फिर इसे वापस अनुवाद करें।

आप मैट्रिक्स श्रृंखलाबद्ध एक भी मैट्रिक्स प्राप्त करने के लिए एक एकल मैट्रिक्स के साथ ऐसा कर सकते हैं:

var m:Matrix = new Matrix(); 
m.translate(-centerX, -centerY); 
m.scale(scaleX, scaleY); 
m.translate(centerX, centerY); 
+0

धन्यवाद हारून, बहुत apreciated –

+0

का अनुवाद() और बड़े पैमाने() स्थिर तरीकों नहीं हैं। आपको उन्हें मैट्रिक्स इंस्टेंस से कॉल करने की आवश्यकता है। – picardo

+0

और वैसे, उन दोनों तरीकों पर वापसी मूल्य शून्य है। – picardo

संबंधित मुद्दे