2011-10-12 6 views

답변

0

...

try { 
      InputStream inputStream = getClass().getResourceAsStream("/svg/sphere1.svg"); 

      _image = (SVGImage)SVGImage.createImage(inputStream, null); 

      _animator = SVGAnimator.createAnimator(_image, "net.rim.device.api.ui.Field"); 

      _document = _image.getDocument(); 

      _svg123 = (SVGElement)_document.getElementById("123"); 


     } 
     catch (IOException e) { e.printStackTrace(); } 
     Field _svgField = (Field)_animator.getTargetComponent();   

     _svgField.setBackground(blackBackground); 

     add(_svgField); 

     _svg123.addEventListener("click", this, false); 
     _svg123.addEventListener("DOMFocusIn", this, false); 
     _svg123.addEventListener("DOMFocusOut", this, false); 


    } 

    public void handleEvent(Event evt) { 

     if(_svg123 == evt.getCurrentTarget() && evt.getType() == "click"){ Dialog.alert("You clicked 123"); } 

     if(_svg123 == evt.getCurrentTarget() && evt.getType() == "DOMFocusIn") { ((SVGElement) _document.getElementById("outStroke123")).setTrait("fill", "#FF0000");  } 
     if(_svg123 == evt.getCurrentTarget() && evt.getType() == "DOMFocusOut") { ((SVGElement) _document.getElementById("outStroke123")).setTrait("fill", "#2F4F75"); } 

    } 
2

난 당신이 오히려 OnClickListener보다 FieldChangeListener을 의미하고 추측거야. SVGImage은 RIM에서 개발 한 객체의 일부가 아니므로 안타깝게도 그렇게 할 수 없습니다. FieldChangeListner을 가질 수있는 것은 모두 net.rim.device.api.ui.Field 클래스의 서브 클래스 여야합니다. 사람이 어떻게하는지에 관심 그냥 경우

+0

확인 ... 흠, 다음 SVG 요소에 클릭을 감지하는 방법은 무엇입니까? – Roger

+1

http://support.umper-blackberry.com/t5/Java-Development/SVG-BitmapField/td-p/677495에서 약간의 변환을 수행하고'BitmapField'를 사용했습니다.이 필드에는'FieldChangeListener ' – jprofitt