كيف يمكنني تحسين سرعة هذا السيناريو أدوبي فليكس؟

StackOverflow https://stackoverflow.com/questions/1806767

  •  05-07-2019
  •  | 
  •  

سؤال

وأنا أعمل على أول تطبيق أدوبي فليكس، ويكون لقسم التعليمات البرمجية التي يبدو أنها تعمل ببطء شديد (ولكنها لا تعمل بشكل صحيح!).

وCC_Output هو السيطرة النص، وجميع عناصر التحكم الأخرى هي خانات (CC، CC_Duration، الخ.)

وأي مساعدة سيكون موضع تقدير كبير!

    

<mx:Script>                   


        private function updateLabel():void {
            var HPI_Score:Number = 0;
            if (CC.selected) {CC_Output.text = "CC/HPI - Brief";}

            if (!CC.selected) {
                CC_Output.text = "CC/HPI - Inadequate";
            } else {

                if (CC_Duration.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Location.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Quality.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Severity.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Timing.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Context.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Modify.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Assoc.selected) {HPI_Score=HPI_Score+1;}
                if (CC_Chronic_Dx.selected) {HPI_Score=HPI_Score+4;}

                if (HPI_Score > 3) {CC_Output.text = "CC/HPI - Extended";}
            }
        }

</mx:Script>
<mx:TextArea id="LBL" x="262" y="28" enabled="true" visible="true" width="142"/>
<mx:CheckBox x="10" y="71" label="Duration" id="CC_Duration" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="92" label="Location" id="CC_Location" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="113" label="Quality" id="CC_Quality" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="134" label="Severity" id="CC_Severity" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="155" label="Timing" id="CC_Timing" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="176" label="Context" id="CC_Context" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="197" label="Modifying Factors" id="CC_Modify" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="218" label="Assoc Signs/Symptoms" id="CC_Assoc" enabled="true" visible="true" click="updateLabel();"/>
<mx:CheckBox x="10" y="239" label="Status of 3 Chronic Dx" id="CC_Chronic_Dx" enabled="true" visible="true" click="updateLabel();"/>
<mx:Label x="10" y="29" text="CC/HPI" fontWeight="bold" id="CC_Output"/>

هل كانت مفيدة؟

المحلول

في فراغ، هذا الرمز يعمل بشكل جيد على جهاز الكمبيوتر المحمول (إذا كان لي أن أضيف في عنصر تحكم CC).

وأنا أعاد عليه قليلا للخروج سريع والتي قد تؤدي إلى تحسين الأمور قليلا في بعض الحالات.

        private function updateLabel():void
    {
        const messageInadequate:String = "CC/HPI - Inadequate";
        const messageBrief:String = "CC/HPI - Brief";
        const messageExtended:String = "CC/HPI - Extended";

        if (!CC.selected)
        {
            CC_Output.text = messageInadequate;
            return;
        }

        if (CC_Chronic_Dx.selected)
        {
            CC_Output.text = messageExtended;
            return;
        }

        var HPI_Score:int = 0;

        if (CC_Duration.selected) HPI_Score++;
        if (CC_Location.selected) HPI_Score++;
        if (CC_Quality.selected) HPI_Score++;
        if (CC_Severity.selected) HPI_Score++;
        if (CC_Timing.selected) HPI_Score++;
        if (CC_Context.selected) HPI_Score++;
        if (CC_Modify.selected) HPI_Score++;
        if (CC_Assoc.selected) HPI_Score++;

        if (4 > HPI_Score)
        {
            CC_Output.text = messageBrief;
        }
        else
        {
            CC_Output.text = messageExtended;
        }
    }

نصائح أخرى

وبناء مكون واحد على ما تريد القيام به واستيراد هذا المكون في التطبيق الرئيسية واستخدامها. ثم ملف وحجم انخفاض وستزيد الأداء.

والغريب أنه يعمل ببطء. لا شيء خاص يحدث في التعليمات البرمجية.

نعم، رمز ليست نظيفة، ولكن هذا لا تؤثر على الأداء هنا.

وحاول تشغيل فليكس التعريف وإيجاد الاختناقات المحتملة، إذا كانت موجودة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top