ปัญหา Java heap space Out of memory by Ziah
Sep4
จากที่ได้ทำโปรเจ็คเกมที่ผ่านมา ด้วยตัวเกมนั้นมีขนาดใหญ่จำนวน ไฟล์จึงมีมากตามจึงทำให้เกิดปัญหา Java Heap Space: Out of memory ซึ่งจะทำให้โปรแกรมปิดตัวลง ซึ่งวิธีแก้จากการหาใน google จะมีวิธีช่วยได้บ้างตามนี้
1. Windows -> Preferences
2. Java -> Installed JREs
3. เลือก Adobe Flash Builder แล้วเลือก Edit..
4. เพิ่ม VM arguments -Xmx1024M (หรือตามใจผู้ใช้แต่คำพนึงถึงแรมเครื่องด้วย)
ซึ่งจากที่ลองทำแล้วปรากฎว่าการDebug ช้าลงเล็กน้อยและกินแรมมากขึ้นซึ่งอาจจะทำให้เกิดน้อยลง(หรือป่าว?)
ที่นี้บางคนอาจจะมีปัญหาเมื่อหลังจากมีปัญหาแล้วเปิดกลับมาอีกรอบ พอรันแล้วจะขึ้น Error Watcher ซึ่งจะขึ้นกับทุก File MXML ของเรา ซึ่งวิธีแก้ที่ผมใช้คือ แก้ไขและเซฟทีละไฟล์ครับ – -” (เคาะสเปซและลบ ทีละไฟลจนครบ) ซึ่งหลังจากนั้นก็จะกลับมาใช้ได้ปกติแล้วล่ะครับ
การเปลี่ยนโค้ดจาก MX Compenent (Flex 3) มาเป็น Spark Component (Flex 4) by Ziah
Mar0
จากครั้งที่แล้วที่ผมได้อธิบายถึงการเปลี่ยนโค้ดจาก Flex 3 มาใช้ใน Flex 4 นะครับซึ่งจะเป็นรูปแบบของโค้ดหรือการทำงาน ซึ่งในครั้งนี้ผมจะอธิบาย Component ต่างๆที่ส่วนมากจะถูกเปลี่ยนมาใช้กับ Spark ใน Flex 4 กันนะครับ
แท็กที่ถูกเปลี่ยนจาก MX มาใช้แบบ Spark
MX Component (Flex 3) | Spark Component (Flex 4) |
<mx:Button> | <s:Button> |
<mx:ButtonBar> | <s:ButtonBar> |
<mx:CheckBox> | <s:CheckBox> |
<mx:ComboBox> | <s:DropDownList> |
<mx:HorizontalList> | <s:List>* |
<mx:HRule> | <s:Line> |
<mx:HScrollBar> | <s:HSlider> |
<mx:List> | <s:List>** |
<mx:NumericStepper> | <s:NumericStepper> |
<mx:RadioButton> | <s:RadioButton> |
<mx:RadioButtonGroup> | <s:RadioButtonGroup> |
<mx:TextArea> | <s:TextArea> |
<mx:TabBar> | <s:TabBar> |
<mx:TextInput> | <s:TextInput> |
<mx:TileList> | <s:List>*** |
<mx:ToggleButtonBar> | <s:ButtonBar> |
<mx:VideoDisplay> | <s:VideoPlayer> |
<mx:VRule> | <s:Line> |
<mx:VScrollBar> | <s:VScrollBar> |
<mx:VSlider> | <s:VSlider> |
<mx:Application> | <s:Application> |
<mx:Window> | <s:Window> |
<mx:WindowedApplication> | <s:WindowedApplication> |
<mx:Canvas> | <s:Group> |
<mx:HBox> | <s:HGroup> |
<mx:Panel> | <s:Panel> |
<mx:Tile> | <s:Group>*** |
<mx:VBox> | <s:VGroup> |
*กำหนด Layout เป็น HorizontalLayout โดยใช้แท็ก <s:layout>
**กำหนด Layout เป็น VerticalLayout โดยใช้แท็ก <s:layout>
***กำหนด Layout เป็น TileLayout โดยใช้แท็ก <s:layout>
ตัวอย่างการใช้แท็ก Layout
<s:List>
<s:layout>
<s:TileLayout />
</s:layout>
</s:List>
แล้วอย่าลืมเปลี่ยน namespace อย่างที่ได้อธิบายใน การนำโปรเจ็คแอปพลิเคชั่นใน Flex Builder 3 ไปใช้งานใน Flash Builder 4 ไว้แล้วนะครับ เท่านี้ก็สามารถเปลี่ยน MX component ที่ใช้ใน Flex 3 มาเป็น Spark component ของ Flex 4 ได้แล้วล่ะครับ