다음과 같이 SVG 요소가 있다고 가정 해보십시오. onClickListener를 어떻게 추가합니까? (잘못된 플랫폼)SVG 요소의 OnClickListener 설정
solved, see below.
다음과 같이 SVG 요소가 있다고 가정 해보십시오. onClickListener를 어떻게 추가합니까? (잘못된 플랫폼)SVG 요소의 OnClickListener 설정
solved, see below.
...
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"); }
}
난 당신이 오히려 OnClickListener
보다 FieldChangeListener
을 의미하고 추측거야. SVGImage
은 RIM에서 개발 한 객체의 일부가 아니므로 안타깝게도 그렇게 할 수 없습니다. FieldChangeListner
을 가질 수있는 것은 모두 net.rim.device.api.ui.Field
클래스의 서브 클래스 여야합니다. 사람이 어떻게하는지에 관심 그냥 경우
확인 ... 흠, 다음 SVG 요소에 클릭을 감지하는 방법은 무엇입니까? – Roger
http://support.umper-blackberry.com/t5/Java-Development/SVG-BitmapField/td-p/677495에서 약간의 변환을 수행하고'BitmapField'를 사용했습니다.이 필드에는'FieldChangeListener ' – jprofitt