Deprecated: Assigning the return value of new by reference is deprecated in /var/www/omflash.dk/public_html/wp-includes/cache.php on line 33

Deprecated: Assigning the return value of new by reference is deprecated in /var/www/omflash.dk/public_html/wp-content/plugins/sem-subscribe-me2/sem-subscribe-me.php on line 511

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_query_vars() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_posts_where() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_posts_join() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_tag_templates() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1329
Nyt i ActionScript 3 - Del 3 - Rectangle klassen - omFlash();
Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_add_ajax_javascript() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1329

Nyt i ActionScript 3 - Del 3 - Rectangle klassen


Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method UltimateTagWarriorActions::ultimate_the_content_filter() should not be called statically in /var/www/omflash.dk/public_html/wp-includes/functions.php on line 1252

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 638

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 638

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 639

Strict Standards: Non-static method UltimateTagWarriorActions::regExEscape() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 639

Strict Standards: Non-static method UltimateTagWarriorActions::replaceTagWithLink() should not be called statically in /var/www/omflash.dk/public_html/wp-content/plugins/UltimateTagWarrior/ultimate-tag-warrior-actions.php on line 643

Dagens gule seddel handler om den nye Rectangle klasse, som blandt andet kommer til at blive brugt i forbindelse med getBounds(), og ser derudover også ud til at være afløseren for den klassiske hitTest().

Selvom man umiddelbart kommer til at tænke på en stor, farvet kasse, så er et Rectangle objekt usynligt, og bruges udelukkende til programmeringsmæssigt at repræsentere et firkantet område.

Eksempelvis returnerer getCharBounds() som jeg skrev lidt om i forgårs et Rectangle objekt.

I stedet for noname getBounds() objekt
Når man tidligere lavede et getBounds() kald på et MovieClip fik man returneret et noname-objekt med værdier for xMin, xMax, yMin og yMax, men fremover vil man få returneret et Rectangle objekt, som blandt andet har værdierne bottomRight og topLeft.

Jeg studsede lidt over det til at startede med, manglede der ikke to værdier?
Men nej, man skal jo bare lige tænke sig om:
bottomRight.x = xMax
bottomRight.y = yMin
topLeft.x = xMin
topLeft.y = yMax

Ja ja, du havde sikkert fanget det med det samme, men langsom som jeg er skulle jeg lige vende den et par gange :-)

Men, et Rectangle objekt har meget mere end et par koordinater, den har også nogle særdeles nyttige funktioner….

contains() og containsPoint()
To meget simple funktioner der fortæller om et givent koordinat eller Point objekt er inde i Rectangle objektet.

containsRect()
Nu begynder det at blive sjovt…
Denne funktion fortæller om et Rectangle objekt er inden i et andet Rectangle objekt, forstået på den måde at hele objektet skal være inden i, ikke bare dele af det.

Ok, med mine begrænsede sproglige evner er det lidt svært at forklare, så derfor har jeg lige forsøgt mig med at lave en lille grafik:

Rectangle containsRect()

intersection()
Funktion der returnerer et nyt Rectangle objekt svarende til det område som 2 andre Rectangle objekter deler.
Vi prøver med en grafik igen:

Rectangle - intersection()

intersects()
Intersects() svarer meget til den gode, gamle hitTest(), som i ActionScript 3 har skiftet navn til hitTestObject() og hitTestPoint().
Med andre ord, den returnerer true hvis 2 Rectangle objekter på nogen måde rør hianden.

Godt nyt
Rectangle objektet har flere værdier og funktioner end dem som jeg har nævnt her, men synes at de nævnte var de mest interessante, og alt i alt må man sige at den nye Rectangle klasse er rigtig godt nyt, da den gør det nemmere at gøre ting som man før har måttet skrive sine egne funktioner til :-)



Del:These icons link to social bookmarking sites where readers can share and discover new web pages.
  • del.icio.us
  • digg

Kommentarer:

  1. Flashger siger: (19. juli 2006 kl. 03:41 )

    Deprecated: preg_replace() [function.preg-replace]: The /e modifier is deprecated, use preg_replace_callback instead in /var/www/omflash.dk/public_html/wp-includes/functions-formatting.php on line 83

    Hej Mads.

    Fedt med en flash-blog.

    Vil blot lige indskyde til interesserede der måske ikke vil kaste sig ud i AS 3 endnu, at både Point (flash.geom.Point) klassen og Rectangle (flash.geom.Rectangle) klassen er at finde i AS 2, og kan bruges ved at importere de to klassers “packages”.

    Keep up the good work!

    MVh

    Asger

Skriv en kommentar