2012-12-07 108 views
8

में पारदर्शी आयताकार बनाता है मुझे एक अजीब सामना करना पड़ रहा है, फ्लैश वीडियो प्लेयर में ग्राफिक्स गड़बड़ी को पुन: उत्पन्न करना बहुत मुश्किल है !, अभी तक केवल क्रोम में।क्रोम फ्लैश प्लेयर फ्लैश विंडो

screenshot

नीचे धूसर आयत "Enter इमारत" html div कि फ़्लैश प्लेयर में बैठा है की पृष्ठभूमि का रंग दिखा रहा है। वहाँ एक छोटे से एक "कहाँ हैं हम" लिंक के पीछे है। ये sprites (कई अन्य sprites और displayobjects युक्त) है जिसमें एक पटकथा होवर एनीमेशन है (वे धीरे-धीरे एक यादृच्छिक बिंदु की ओर बढ़ते हैं जो उनके मूल की एक निश्चित सीमा के साथ है)। गड़बड़ उनके साथ मिलकर बदलती है, कभी-कभी गायब हो जाती है।

यह बिल्कुल अजीब बात है कि यह पूरे फ्लैश घटक को देखता है। मैं इस कोड चल रहा जब videoplayer बनाई गई है है:

 graphics.clear(); 
     graphics.beginFill(0xff00ff, 1); 
     graphics.drawRect(0, 0, _stage.stageWidth, _stage.stageHeight); 
     graphics.endFill(); 

तो वहाँ वीडियो प्लेयर की पीठ में एक चमकीले रंग होना चाहिए, और मैंने पुष्टि की है कि यह वहाँ अगर मैं लोड नहीं है वीडियो प्लेयर। हालांकि यह उज्ज्वल रंग प्रदर्शित नहीं होता है, बल्कि पृष्ठभूमि div जिसमें खिलाड़ी शामिल होता है।

यह मुझे बिल्कुल समझ में नहीं आता है ... और मुझे नहीं पता कि इसे कैसे डिबग करना है। मुझे पता है कि गड़बड़ी की उपस्थिति इस बात पर निर्भर है कि टेक्स्ट-लिंक स्क्रीन पर होवर कर रहे हैं।

फ्लैश डब्लूएमओडीई पारदर्शी में लोड किया गया है, जिसे हमें चाहिए क्योंकि इसकी तरफ एक विस्तारणीय 'विंग' है जो अर्द्ध पारदर्शी है।

संपादित करें:

यह www.48hourgames.com पर लाइव है। एक बार खाता बनाने के बाद आप वीडियो प्लेयर देखेंगे जो उपरोक्त स्क्रीनशॉट के साथ समाप्त होता है।

+0

सुनिश्चित करें कि आपका क्रोम नवीनतम संस्करण है। ** मुख्य मेनू ** से ** ** 'Google क्रोम के बारे में' ** चुनें और यदि आवश्यक हो तो यह स्वचालित रूप से नवीनतम संस्करण को देख और स्थापित करेगा। – arttronics

+1

इससे समस्या हल नहीं हुई। यह क्रोम के नवीनतम संस्करण के साथ सभी मशीनों पर होता है। – joon

+0

मुझे पता है कि आपके पास मंच के लिए '_' है जो अजीब लगता है। हो सकता है कि यह 'stage.stageWidth' और 'stage.stageHeight' होने का अनुमान है? आमतौर पर, * underscore * एक चर निर्दिष्ट करने के लिए प्रयोग किया जाता है। यदि इसकी आवश्यकता है, तो शायद वाक्यविन्यास 'this._stage.stageWidth' और 'this._stage.stageWidth' होना चाहिए। – arttronics

उत्तर

5

यह मिर्च फ्लैश प्लेयर के साथ एक समस्या है। कुछ समय के लिए एडोब और Google इस पर काम कर रहे हैं, इस तरह वे फ्लैश को जीवंत रखने और लिनक्स प्लेटफ़ॉर्म पर काम करने का इरादा रखते हैं।

मिर्च फ्लैश, दुर्भाग्यवश, बहुत छोटी है। इस साल की गर्मियों में कभी-कभी, पेपर फ्लैश सभी ऑपरेटिंग सिस्टम के लिए क्रोम में डिफ़ॉल्ट फ्लैश प्लगइन बन गया। इसमें कई मुद्दे हैं कि इसे अक्षम करने के अलावा कोई वास्तविक समाधान नहीं है (और उम्मीद है कि एडोब/Google उन्हें संबोधित करेगा)।

अक्षम करने के लिए काली मिर्च फ्लैश:

  • पर जाएँ: क्रोम: // plugins
  • ऊपरी दाहिने
  • फ़्लैश प्लेयर प्लगइन अनुभाग ढूंढें में क्लिक विस्तृत आइकन, आप की संभावना कई संस्करण होगा फ़्लैश स्थापित यहाँ। मैंने क्रोम को यह सत्यापित करने के लिए इंस्टॉल किया कि यह समस्या थी, और इसमें मिर्च फ्लैश प्लस फ्लैश के 2 "सामान्य" संस्करण थे।
  • फ्लैश प्लगइन को अक्षम करें जिसमें पथ में "PepperFlash" है।
+1

यह बहुत उपयोगी है। क्या कोई आधिकारिक जानकारी या बग रिपोर्ट है जो आप मुझे संदर्भित कर सकते हैं, इसलिए मैं उन्हें ट्रैक कर सकता हूं? – joon

+0

क्षमा करें मैंने कभी भी एक बग रिपोर्ट की तलाश नहीं की, लेकिन इंटरनेट पेपर फ्लैश/क्रोम में होने वाली समस्याओं की रिपोर्ट के साथ झुका हुआ है। कुछ मुद्दों को आसपास काम नहीं किया जा सकता है (विशेष रूप से वेबकैम के बारे में)। हालांकि, टिफ़ोन ने अपने जवाब में कुछ अच्छे विचार पोस्ट किए जो काम के आस-पास काम करते हैं। विशेष रूप से यदि आप एक गैर मानक wmode मान का उपयोग कर रहे हैं, जो मुद्दों का अपना सेट लाता है। –

+0

प्रबुद्ध उत्तर। धन्यवाद। –

4

मैं इस मुद्दे को बहुत विश्वसनीय रूप से पुन: उत्पन्न करने में सक्षम था। कुछ विचार:

  • wmode transparent जैसे ध्वनि आवर्ती आधार पर समस्याग्रस्त हो सकते हैं। हो सकता है कि आप फ़्लैश तत्व को चौड़ाई 100% बना सकें और बाएं/दाएं मार्जिन में एक असीमित पृष्ठभूमि करें।फ्लैश में, आप इसे stage.scaleMode = StageScaleMode.NO_SCALE; के माध्यम से अपनी सामग्री स्केल करने से रोक सकते हैं। यदि फ्लैश पूरी चौड़ाई चला गया, तो आप wmode transparent से छुटकारा पा सकते हैं और शायद जाने के लिए अच्छा हो सकता है।
  • क्या आपने फिल्म को ओवरले करने वाले दो बटनों के लिए cacheAsBitmaptrue पर सेट करने का प्रयास किया है?
  • क्योंकि कलाकृतियां केवल फिल्म के अंत में दिखाई देती हैं, जब यह अभी भी फ्रेम है, तो शायद इस अंतिम स्थिति तक पहुंचने पर फिल्म पर cacheAsBitmaptrue सेटिंग कर सकती है?
  • शायद पीएनजी छवि के साथ अंतिम स्थिति तक पहुंचने पर फिल्म को स्वैप कर दें जो समान दिखता है?
  • शायद पीएनजी छवियों के साथ दो बटन स्वैप करें, अगर वे पहले से ही पीएनजी छवियां नहीं हैं?

यदि ये काम नहीं करते हैं ... और अधिक हताश हो रही है।

  • शायद एसडब्ल्यूएफ से अपने स्वयं के एसडब्ल्यूएफ में साइड मेनू (फ्लैश एलिमेंट का विस्तार) को पट्टी करें और फिल्म एसडब्ल्यूएफ के शीर्ष पर रखें। इस तरह, फिल्म एसडब्ल्यूएफ wmode transparent खो सकती है और शायद साइड मेनू पर गड़बड़ी नहीं होगी।
  • साइड मेनू HTML हो सकता है।
    • रोलओवर राज्य HTML तत्व हो सकते हैं।
    • या, साइड मेनू रोलओवर ग्रंथों को टॉगल करने के लिए फ़्लैश तत्व में कॉल कर सकता है। फ्लैश में कॉल ExternalInterface कक्षा (details) के माध्यम से पंजीकृत होना होगा।

मैं कुछ भी परीक्षण करने के लिए कोड की जरूरत नहीं है के रूप में, इन अंधेरे में सब थोड़े शॉट्स रहे हैं।

मैं cacheAsBitmap संबंधित विचारों से शुरू करूंगा। फिर पीएनजी विचारों (बटन, अंतिम फ्रेम) पर जाएं। वहां से, फ़्लैश तत्व के पूर्ण-चौड़ाई संस्करण को आज़माएं। यदि ये काम नहीं करते हैं, तो आप एक नए डिजाइन पर विचार करना चाहेंगे। यदि यह कोई विकल्प नहीं है, तो ऊपर वर्णित अनुसार, विविधता के साथ, मैं साइड मेनू को विभाजित करने पर आगे बढ़ूंगा।

+0

वीडियो पर मेनू को स्थानांतरित करने के लिए एक संभावित वैकल्पिक डिज़ाइन होगा: http://imgur.com/fjh3b – tiffon

2

मुझे आज यह समस्या सबसे पुरानी फ़्लैश प्लेयर संस्करण 11.6 + क्रोम 27 के साथ मिली है। कुछ कंप्यूटरों में यह कई अन्य लोगों पर काम कर रहा है, ऐसा नहीं है, यह समस्या को ट्रैक करना बहुत मुश्किल है क्योंकि यह मेरी तरफ नहीं हो रहा है।

मुझे विश्वास है कि यह एक फ्लैश के बग है, क्रोम नहीं है क्योंकि जब मैं rightclick -> जूम-इन, rightclick -> ज़ूम-आउट गंदा पैच गायब

तो मैं एक गंदा त्वरित सुधार के लिए चारों ओर देखा।

कोशिश की गई कैशएएस बिटमैप विधि: काम नहीं करता है (यह फिक्स "काला जहां पारदर्शिता" समस्या के लिए काम करता है लेकिन इस के लिए नहीं)।

की कोशिश की दो फ्रेम छवियों विधि: न तो (यकीन नहीं क्यों) काम नहीं करता

मैं अंत में (परीक्षण किया कई बार) ठीक करने के लिए एक रास्ता मिल गया:

गंदा सफेद धब्बे के रूप में केवल शो जब एनीमेशन समाप्त होता है मैंने मंच पर एक पारदर्शी आकार टिविन क्लिप लगाया और इसे हमेशा के लिए चलाएं। और यह काम करता है।

पी/एस: असल में मैंने इसे उत्तर के बजाय टिप्पणी के रूप में जोड़ने की कोशिश की लेकिन ऐसा करने का कोई तरीका नहीं मिला, यह अजीब है।

+0

क्रोम में मेरा एसडब्ल्यूएफ wmode = transrent पर सेट है और मुझे पारदर्शी पीएनजी के पीछे काला मिल रहा था। यह सिर्फ एक विशेष परियोजना पर मेरे लिए हो रहा है। मैंने पीएनजी को एक मूवी क्लिप बनाया और 'कैशएएस बिटमैप' को सही पर सेट किया और यह मेरे लिए काली पृष्ठभूमि तय कर दी – Ronnie

0

मुझे अपने जिग्स गेम खेलने के दौरान आज मेरे Google क्रोम 31.0.1650.63 पर इस समस्या का सामना करना पड़ा है। मैं आम तौर पर इस ब्राउज़र का उपयोग नहीं करता, इसलिए फ़्लैश को हर ब्राउज़र में बिल्कुल वही काम करना चाहिए, इसलिए मैं अपने पूरे गेम में सफेद आयताकारों के बारे में सुनने के लिए आश्चर्यचकित था। पारदर्शी की बजाय इस समस्या को ठीक करने के बजाय wmode को अपारदर्शी में सेट करना।

0

यहां मेरे वीडियोप्लेयर में भी वही है।

केवल क्रोम मिर्च फ्लैश में, और केवल तभी जब swf पारदर्शी wmode के साथ एम्बेड किया गया हो।

आज मैं एक फिक्स/वैकल्पिक हल मिल गया है/वेब जो एक मैं के साथ रह सकते हैं पर हैक:

"आप एक सरल हैक के साथ इस समस्या को बायपास करना चाहते हैं, तो आप एक MovieClip आकर्षित कर सकते हैं कि एक पारदर्शी भर है। और प्रत्येक फ्रेम अपनी 'अल्फा' संपत्ति टॉगल करता है। क्योंकि इसकी भर पारदर्शी है, इसकी 'अल्फा' संपत्ति मूवीक्लिप की अल्फा प्रॉपर्टी को अपडेट करने के लिए पूर्ण स्क्रीन रीड्रो को मजबूर करने के अलावा कुछ भी नहीं करती है। wmode पारदर्शी होने के कारण किसी भी खराब कार्यक्षमता को ठीक करता है।

moueEnabled = false जोड़कर आप सुनिश्चित करते हैं कि हैक किसी भी मौजूदा माउस ईवेंट में हस्तक्षेप नहीं करता है "

import flash.display.MovieClip; 
import flash.events.Event; 

var redrawAll = new MovieClip(); 
redrawAll.mouseEnabled = false; 
redrawAll.graphics.beginFill(0x000000, 0); 
redrawAll.graphics.moveTo(0,0); 
redrawAll.graphics.lineTo(stage.stageWidth, 0); 
redrawAll.graphics.lineTo(stage.stageWidth, stage.stageHeight); 
redrawAll.graphics.lineTo(0, stage.stageHeight); 
redrawAll.graphics.endFill(); 
addChild(redrawAll); 

addEventListener(Event.ENTER_FRAME, function(e:Event){ 
    redrawAll.alpha = (redrawAll.alpha == 0)? 1 : 0;     
}); 

"

स्रोत: https://code.google.com/p/chromium/issues/detail?id=173089#c12

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

  • कोई संबंधित समस्या नहीं^_^