flash - How to get the stage dimensions with StageScaleMode.SHOW_ALL? -


यदि आप stage.scaleMode को StageScaleMode.SHOW_ALL में सेट करते हैं, तो आपके swf को ऊपर या नीचे बढ़ाया जा सकता है, और उस पर पैड किया जा सकता है ऊपर / नीचे या बाएं / दाएं हालांकि, स्टेज.विड्थ + ऊंचाई हमेशा आपके एसडीएफ द्वारा परिभाषित चौड़ाई और ऊंचाई लौटाते हैं, और चरण। स्केल एक्स + Y हमेशा वापस आते हैं 1. जैसा कि मैं समझता हूं, घटनाओं का आकार बदल नहीं किया जाता है। तो मैं वास्तविक पैमाने और आयामों को कैसे प्राप्त करूं?

मैं उन्हें दो समस्याओं के लिए चाहता हूं:

  1. मुझे उस पैडिंग को ऊपर / नीचे पर भरना है या कुछ के साथ ही बाएं / दाएं, अगर उपयोगकर्ता इसे देख सकता है।

  2. मैं बिटमैप्स को बिटमैप्स में खींच रहा हूँ और इसे ठीक से पैमाने पर करना चाहता हूं, इसलिए यह दांतेदार (या फजी के साथ नहीं) bitmap.smoothing)। फ़्लैश स्केलिंग को सही ढंग से करते समय लगता है जब आप कैश ए बिटमैटमैप = सच है, तो मैं इसे कैसे पुन: बनाएँ?

    आपके मामले में यह शायद स्टेजस्केलमोड.एनओएससीईएल का प्रयोग करना आसान होगा और अपने आप को रिसाइज करने का कोड होगा:

      stage.addEventListener (इवेंट। RESIZE, onStageResize); StageResize पर निजी फ़ंक्शन (ईवेंट: ईवेंट): शून्य {var stageW: int = stage.stageWidth; Var चरण एच: int = stage.stageHeight; Var contentW: int = yourVisibleContent.width; Var contentH: int = yourVisibleContent.height; // var को कैनवास फिट करने के लिए इसे फिर से आकार दें आकृतिरेखा: नंबर = चरण- W / चरण एच; Var सामग्री आकृतिरेखा: संख्या = सामग्रीवा / सामग्री एच; अगर (कैनवास ऐपेटाइटियो & gt; सामग्री आभासी रियाटियो) {yourVisibleContent.height = stageH; YourVisibleContent.width = yourVisibleContent.height * contentAspectRatio; } Else {yourVisibleContent.width = stageW; YourVisibleContent.height = yourVisibleContent.width / contentAspectRatio; } // इसे केंद्र: yourVisibleContent.x = (stageW - yourVisibleContent.width) / 2; YourVisibleContent.y = (चरण एच - yourVisibleContent.height) / 2; // काला के साथ शेष स्थान को भरें: graphics.beginFill (0x000000); अगर (कैनवास एस्पेक्टरआरएटीओ & gt; सामग्री आभासी रियाटियो) {वैर क्षैतिज अंकीय स्पेस: संख्या = चरण- W - आपका विवेकसंचार। Graphics.drawRect (0, 0, क्षैतिज अंकीय स्पेस / 2, चरण एच); Graphics.drawRect (stageW - क्षैतिज खाली स्पेस् / 2, 0, क्षैतिज खाली स्पेस / 2, चरण एच); } और {var वर्टिकल अंकीय स्पेस: संख्या = चरणएच - आपका विवेकसंसाधन। हाइट; Graphics.drawRect (0, 0, stageW, वर्टिकल स्पेस स्पेस / 2); Graphics.drawRect (0, चरण एच - ऊर्ध्वाधर खाली स्पेस् / 2, स्टेजवे, वर्टिकल स्पेस स्पेस / 2); } // अब आप उच्च संकल्प के साथ अपने बिटमैप redraw भी कर सकते हैं / / / के साथ अपनी सामग्री के पैमाने को पढ़ने के लिए आसान है: yourVisibleContent.scaleX और yourVisibleContent.scaleY}    

Comments