2011-03-31 3 views
1

this.container.addElement (myCustomImageInstance as GraphicElement)는 테스트 이미지를 표시해야합니다. 상속받지 않고 BitmapImage의 기능을 구현하는 가장 좋은 방법은 무엇입니까?

package com.www 
{ 
    import spark.primitives.BitmapImage; 
    import spark.primitives.supportClasses.GraphicElement; 

    public class BaseTest extends GraphicElement 
    {  
     public function BaseTest() 
     { 
      super(); 
     } 

     /* stuff */ 
    } 

    public class MyCustomImage extends BaseTest 
    { 
     private var _img:BitmapImage = null; 

     public function MyCustomImage() 
     { 
      super(); 
     } 

     public function get img():BitmapImage { 
      if (!_img) { 
       _img = new BitmapImage(); 
       _img.source = /* BitmapData of a test image */; 
      } 
      return _img; 
     } 

     /* It obviously does not work, any ideas? 
     override public function createDisplayObject():DisplayObject { 
      return img.displayObject; 
     } 

     override public function get displayObject():DisplayObject { 
      return img.displayObject; 
     } 
     */ 

    } 

} 

는 스파크 BitmapImage 클래스는로드 비트 맵 데이터에 대한 멤버 함수를 포함하지 않는, mx:Image 달리 당신에게

+0

귀하의 질문은 매우 명확하지 않습니다 - 좀 더주세요 특정 vis. 당신이 성취하려는 것. –

+0

MyCustomImage의 인스턴스를 DisplayObjectContainer에 (addElement) 추가하려고합니다. 렌더링은 BitmapImage 표시 객체입니다. –

+0

내 질문에 대답하기. BaseTest는 예를 들어 Group을 확장하고 BitmapImage 요소를 추가해야합니다. –

답변

1

대단히 감사합니다. 따라서 URL을 밀어 넣으려고하는 source 속성은 실제 비트 맵 데이터 (SWFLoader 또는 Loader에서 반환 된 것 또는 포함 된 이미지 파일)를 가져 오기위한 것입니다.

기술적으로 URL을 embed 지시문 (예 : @Embed("http://...image.jpg"))에 배치 할 수 있지만 MXML 대신 ActionScript를 사용하므로 동적으로 이미지를로드하려고합니다.

그런 경우 mx.controls.Image을 사용하거나 별도의 mx.controls.SWFLoader 또는 flash.display.Loader을 사용하여 필요한 이미지를로드해야합니다. 로딩 프로세스가 비동기임을주의해야합니다.

당신은 MX와 같은 기능을하는 s:BitmapImage과 함께, 어떻게 flash.display.Loader를 사용하는 방법을 보여줍니다 도움이 다음 튜토리얼, 같은 것을 찾을 수 있습니다 : 이미지 : 이 http://polygeek.com/2452_flex_extending-spark-bitmapimage

+0

문제를 알려 주셔서 감사합니다. 실제로 문제는 아닙니다. 내 메시지를 편집합니다. –

관련 문제