Ik ben enkele avonden bezig geweest om een bepaald probleem op te lossen.
Ik heb een programma waarmee dynamisch een of meerdere cirkels worden getekend, elke cirkel heeft een andere depth (1 --> oneindig). Daarnaast wordt er dynamisch een figuur op het scherm getekend, die in een movieclip wordt getekend op depth 200000. Zowel de cirkels als het figuur worden m.b.v. createEmptyMovieclip op het scherm getekend.
Scoop van de cirkel is:
visualisation_MC.canvas.circle1
Scoop van het figuur is:
visualisation_MC.canvas.noPlottingArea
Nu is het de bedoeling dat het figuur, dat overigens niet zichtbaar mag zijn op het scherm, fungeert als een mask t.o.v. die cirkels. Waar het figuur de cirkels overlappen, moet een hap uit de cirkel worden genomen.
Ik heb het probleem geprobeerd op te lossen met onderstaand statement, echter krijg ik het hiermee niet voor elkaar.
(circle3 wordt hier natuurlijk even als voorbeeld gebruikt)
Ik heb ook gekeken naar een andere oplossing en dat had meer te maken met pixelmanipulatie, echter kreeg ik dit ook niet voor elkaar. Ik heb zowel de cirkels als het figuur in een tijdelijke "bitmapmovie" geplaatst, maar kon geen bewerken dingen doen op individuele pixels. Ik kon individuele pixels overigens wel uitlezen, maar niet transparant maken of van kleur laten veranderen.
De code om het figuur tijdelijk in een "bitmapmovie" te plaatsen.
Wie weet een oplossing voor 1 of beide opties die ik heb geprobeerd, of heb ik misschien toch iets over het hoofd gezien.
Ik heb een programma waarmee dynamisch een of meerdere cirkels worden getekend, elke cirkel heeft een andere depth (1 --> oneindig). Daarnaast wordt er dynamisch een figuur op het scherm getekend, die in een movieclip wordt getekend op depth 200000. Zowel de cirkels als het figuur worden m.b.v. createEmptyMovieclip op het scherm getekend.
Scoop van de cirkel is:
visualisation_MC.canvas.circle1
Scoop van het figuur is:
visualisation_MC.canvas.noPlottingArea
Nu is het de bedoeling dat het figuur, dat overigens niet zichtbaar mag zijn op het scherm, fungeert als een mask t.o.v. die cirkels. Waar het figuur de cirkels overlappen, moet een hap uit de cirkel worden genomen.
Ik heb het probleem geprobeerd op te lossen met onderstaand statement, echter krijg ik het hiermee niet voor elkaar.
code:
1
| visualisation_MC.canvas.circle3.setMask(visualisation_MC.canvas.noPlottingArea); |
(circle3 wordt hier natuurlijk even als voorbeeld gebruikt)
Ik heb ook gekeken naar een andere oplossing en dat had meer te maken met pixelmanipulatie, echter kreeg ik dit ook niet voor elkaar. Ik heb zowel de cirkels als het figuur in een tijdelijke "bitmapmovie" geplaatst, maar kon geen bewerken dingen doen op individuele pixels. Ik kon individuele pixels overigens wel uitlezen, maar niet transparant maken of van kleur laten veranderen.
De code om het figuur tijdelijk in een "bitmapmovie" te plaatsen.
code:
1
2
3
| var areaBitmap = new flash.display.BitmapData(720, 720, true, 0); // Bitmap areaBitmap.draw(visualisation_MC.canvas.noPlottingArea); // Tijdelijk in bitmap areaBitmap.getPixel(); //De enige bewerking die wel lukte |
Wie weet een oplossing voor 1 of beide opties die ik heb geprobeerd, of heb ik misschien toch iets over het hoofd gezien.
[ Voor 3% gewijzigd door Verwijderd op 19-10-2007 23:28 ]