jun 17
Door: Rian Verhagen

Met de Graphics API in AS3 is het heel simpel om dynamisch een cirkel te tekenen met de drawCircle functie. Ook een cirkel met een uitsparing is geen probleem. Moeilijker wordt het als je een dergelijke cirkel als masker wilt gebruiken. Flash ziet zo'n holle cirkel bij het maskeren simpelweg als een compleet gevulde cirkel. Weg effect!

De oplossing voor dit probleem (bug?) is om de getekende cirkel eerst in een BitmapData object te stoppen, en dat dan als masker te gebruiken. Hieronder vind je een code voorbeeld:

CODE:
  1. var layerMask:Sprite = new Sprite();
  2.  
  3. //Zwarte fill van de cirkel
  4. layerMask.graphics.beginFill(0x000000);
  5. layerMask.graphics.drawCircle(150,150, 150);
  6. layerMask.graphics.drawCircle(150,150, 100);
  7. layerMask.graphics.endFill();
  8.  
  9. //BitmapData object aanmaken, transparant met een zwarte achtergrond.
  10. var layerMaskBMD:BitmapData = new BitmapData(layerMask.width, layerMask.height, true, 0x000000);
  11. layerMaskBMD.draw(layerMask);
  12.  
  13. //BitmapData object in een Bitmap object stoppen
  14.  
  15. var layerMaskBitmap:Bitmap = new Bitmap(layerMaskBMD);
  16.  
  17. //De cirkel is nu vertaald naar een bitmap en kan dus verwijderd worden.
  18.  
  19. layerMask.graphics.clear();
  20.  
  21. //Bitmap toevoegen aan layerMask.
  22. layerMask.addChild(layerMaskBitmap);
  23.  
  24. layerMask.cacheAsBitmap = true;
  25.  
  26. addChild(layerMask);
  27.  

De sprite layerMask kan nu gebruikt worden als mask. Voorwaarde is wel dat het te maskeren DisplayObject de property cacheAsBitmap = true heeft.

Gerelateerde

apr 29
Door: Rian Verhagen



Lee Brimelow heeft op zijn gotoandlearn.com een videotutorial over een OOP scrollbar. Hij maakt hierin gebruik van een standaard vectormask. Ik heb op basis van zijn tutorial een variant gemaakt die gebruik maakt van een scrollrect. Dit kan een substantieele performance verbetering opleveren wanneer je zware content wilt scrollen (mits deze content statisch is en dus niet animeert). Misschien heb je er wat aan. Alle credits gaan naar Lee Brimelow.

Hieronder de code (plak deze in de actions layer van lee's .fla, je kunt de mask laag dan verwijderen):

Verder lezen »

Gerelateerde

apr 24
Door: Rian Verhagen

Air

Stel je voor: je moet in Adobe Air bijvoorbeeld een intranet applicatie bouwen. Nu zou het leuk zijn als de gebruiker niet zelf zou hoeven inloggen, maar dat dit automatisch gebeurt. De gebruiker heeft tenslotte al eerder ingelogd in Windows of OS X. Dit kan met Adobe Air op een simpele manier.
Verder lezen »

Gerelateerde

  • Geen gerelateerde
okt 13
Door: Mickel van Kouwen

Bron:

Gerelateerde

okt 13
Door: Mickel van Kouwen

Bronnen:

AIR Flash extension

Gerelateerde