FlexMaterial.as
上传用户:chuer333
上传日期:2022-06-13
资源大小:906k
文件大小:1k
源码类别:

FlashMX/Flex源码

开发平台:

Flex

  1. package com.dougmccune.containers.materials
  2. {
  3. import flash.display.DisplayObject;
  4. import flash.events.Event;
  5. import flash.geom.Matrix;
  6. import mx.core.Container;
  7. import mx.core.UIComponent;
  8. import mx.events.FlexEvent;
  9. import org.papervision3d.materials.MovieMaterial;
  10. public class FlexMaterial extends MovieMaterial
  11. {
  12. public function FlexMaterial(movieAsset:DisplayObject=null, transparent:Boolean=true)
  13. {
  14. if(movieAsset is UIComponent) {
  15. addUpdateListeners(UIComponent(movieAsset));
  16. }
  17. super(movieAsset, transparent, false);
  18. }
  19. private function addUpdateListeners(component:UIComponent):void {
  20. component.addEventListener(FlexEvent.UPDATE_COMPLETE, handleUpdateComplete, false, 10, true);
  21. if(component is Container) {
  22. var n:int = Container(component).numChildren;
  23. for(var i:int=0; i<n; i++) {
  24. var child:DisplayObject = component.getChildAt(i);
  25. if(child is UIComponent) {
  26. addUpdateListeners(UIComponent(child));
  27. }
  28. }
  29. }
  30. }
  31. override public function drawBitmap():void
  32. {
  33. bitmap.fillRect( bitmap.rect, this.fillColor );
  34. var mtx:Matrix = new Matrix();
  35. mtx.scale( movie.scaleX, movie.scaleY );
  36. bitmap.draw( movie, mtx, movie.transform.colorTransform );
  37. }
  38. private function handleUpdateComplete(event:Event):void {
  39. if(bitmap)
  40. updateBitmap();
  41. }
  42. }
  43. }