Αρχείο για τον Ιούλιο, 2007
ActionScript 3,0 Memory Management
Μνήμη κώδικας διαχείρισης απευθείας από τον άνδρα στο gskinner.com.
flash.system.System εισαγωγή? flash.net.navigateToURL εισαγωγή? flash.net.URLRequest εισαγωγή? ... / / Ελέγχει τη μνήμη μας κάθε 1 δευτερόλεπτο: var checkMemoryIntervalID: uint = setInterval (checkMemoryUsage, 1000)? ... var showWarning: Boolean = αλήθεια? var warningMemory: uint = 1000 * 1000 * 500? var abortMemory: uint = 1000 * 1000 * 625? ... λειτουργία checkMemoryUsage () ( εάν (System.totalMemory> warningMemory & & showWarning) ( / / Προκύπτει ένα σφάλμα στο χρήστη προειδοποιώντας τους ότι είμαστε εξαντλείται η μνήμη της και ενδέχεται να κλείσετε / / Προσπαθώ να ελευθερώσετε μνήμη, ει δυνατόν, showWarning = false? / / γι 'αυτό δεν προκύπτει σφάλμα κάθε δεύτερο ) Else if (System.totalMemory> abortMemory) ( / / Αποθηκεύσετε τα τρέχοντα δεδομένα χρήστη σε μια LSO για ανάκτηση αργότερα; ματαίωση ()? ) ) λειτουργία ματαίωση () ( / / Στείλετε το χρήστη σε μια σελίδα που εξηγεί τι happpened: navigateToURL (νέα URLRequest ("memoryError.html"))? )
Μπορείτε να βρείτε ένα σωρό αλλα διαχείριση του συστήματος σε gskinner.com
AS3 Δυναμική Μάσκα Gradient Alpha
Κατά τη διαδικασία της δημιουργίας μιας γκαλερί στο AS3, έτρεξα σε όλη αυτή την ενδιαφέρουσα λάθος.
1118: Implicit coercion of a value with static type flash.display:DisplayObject to a possibly unrelated type flash.display:MovieClip.
Εσφαλμένη Κωδικός:
δημόσια τάξη ImageGallery εκτείνεται Component ( ιδιωτικού var ldrData: URLLoader? ιδιωτικού var μετράνε: uint? var κάτοχος: MovieClip? var myMask: MovieClip? δημόσια λειτουργία ImageGallery () ( count = 0? myMask = νέα MovieClip ()? κάτοχος = νέα MovieClip ()? addChild (κάτοχος)? holder.x = 50? holder.y = 0? myMask = addChild (νέα mask_mc ())? holder.cacheAsBitmap = αλήθεια? myMask.cacheAsBitmap = αλήθεια? holder.mask = myMask? if (this.stage! = null) ( / / Master.SetParameter ("ModelId", "100") this.Initialize ()? ) ) ... )
Η ενημέρωση κώδικα για αυτό το σφάλμα ήταν απλή. Κατά τη δήλωση myMask = addChild (νέα mask_mc ()), μπορείτε να ρίχνει μεταβλητή σας χρησιμοποιώντας "ως MovieClip" για να διορθωθεί το πρόβλημα.
Διορθώνεται Κωδικός:
δημόσια τάξη ImageGallery εκτείνεται Component ( ιδιωτικού var ldrData: URLLoader? ιδιωτικού var μετράνε: uint? var κάτοχος: MovieClip? var myMask: MovieClip? δημόσια λειτουργία ImageGallery () ( count = 0? myMask = νέα MovieClip ()? κάτοχος = νέα MovieClip ()? addChild (κάτοχος)? holder.x = 50? holder.y = 0? myMask = addChild (νέα mask_mc ()), όπως MovieClip? holder.cacheAsBitmap = αλήθεια? myMask.cacheAsBitmap = αλήθεια? holder.mask = myMask? if (this.stage! = null) ( / / Master.SetParameter ("ModelId", "100") this.Initialize ()? ) ... )
