actionscript-3 - उनल - धोली छतरियां में बैठा रे भोलानाथ




एएस 3-ठीक 23 खाली अल्फा चैनलों पर, चित्र नीचे खींचें (2)

मैंने देखा कि बड़ी संख्या में मंडलियां आकर्षित करने की कोशिश करते हुए, कभी-कभी, किसी प्रकार का दृश्य बग होगा, जहां कुछ सर्कल ठीक से नहीं आयेगी। खैर, मैंने इसे नीचे संकुचित कर दिया है, और यह पाया है कि यदि एक ही स्थान पर अल्फा मूल्य के लिए 00 के साथ 23 या अधिक ऑब्जेक्ट्स हैं, तो नीचे दिए गए ऑब्जेक्ट्स नहीं आकर्षित होते हैं। यह एक पिक्सेल-बाय-पिक्सेल आधार पर प्रतीत होता है, चूंकि छवि के कुछ हिस्सों को अभी भी आकर्षित किया जाता है

मूल रूप से, इस समस्या को एक वर्ग के साथ देखा गया जो कि विरासत में मिला है। यह भी स्प्राइट्स के साथ एक समस्या होने की पुष्टि हुई थी, और अब बिटमैप्स भी। यदि कोई भी बिटमैप की तुलना में निम्न-स्तरीय वर्ग की खोज कर सकता है जिसके पास इस समस्या नहीं है, तो कृपया बात करें ताकि हम समस्या की उत्पत्ति को खोजने का प्रयास कर सकें।

मैंने एक छोटे टेस्ट क्लास तैयार किया जो दर्शाता है कि मेरा क्या मतलब है। आप समस्या को स्पष्ट रूप से दिखाने के लिए आए तीन परीक्षणों को देखने के लिए आप लाइन 20 पर पूर्णांक मान को बदल सकते हैं।

क्या कोई प्रकार का समाधान है, या यह सिर्फ एक सीमा है जिसके साथ मुझे काम करना है? क्या किसी ने यह पहले अनुभव किया है? क्या यह संभव है कि मैं बेकार-हड्डियों के कार्यान्वयन के बावजूद कुछ गलत कर रहा हूं?

package 
{
    import flash.display.Sprite;
    import flash.events.Event;
    import flash.display.Bitmap;
    import flash.display.BitmapData;

    public class Main extends Sprite 
    {
        public function Main():void 
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void 
        {
            removeEventListener(Event.ADDED_TO_STAGE, init);
            // entry point
            Test(3);
        }

        private function Test(testInt:int):void {
            if(testInt==1){
                addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF0000)));
                for (var i:int = 0; i < 22; i++) {
                    addChild(new Bitmap(new BitmapData(100, 100, true, 0x00000000)));
                }
            }
            if(testInt==2){
                addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF0000)));
                for (var j:int = 0; j < 23; j++) {
                    addChild(new Bitmap(new BitmapData(100, 100, true, 0x00000000)));
                }
            }
            if(testInt==3){
                addChild(new Bitmap(new BitmapData(200, 200, true, 0xFFFF0000)));
                for (var k:int = 0; k < 22; k++) {
                    addChild(new Bitmap(new BitmapData(100, 100, true, 0x00000000)));
                }
                var M:Bitmap = new Bitmap(new BitmapData(100, 100, true, 0x00000000));
                M.x += 50;
                M.y += 50;
                addChild(M);
            }
        }
    }
}

मुझे यकीन नहीं है कि आप क्यों बिटमैप को बच्चे के रूप में जोड़ते हैं। मुझे लगता है कि आपको एक बिटमैपडेटा पर ड्रॉ () का उपयोग करके सभी आकृतियों को आकर्षित करना चाहिए। आप आकृतियों को आकर्षित कर सकते हैं, और फिर उन्हें बिटमैपडेटा में आकर्षित कर सकते हैं। अगर अधिक स्पष्टीकरण की आवश्यकता हो तो मैं और अधिक विशिष्ट हो सकता हूं।


प्रत्येक बिटमैप को bmp.cacheAsbitmap = सेट करें