2012-09-28 1 views
0

새로운 AppMobi 세계를 처음 접했으므로 저에게 도움을주십시오.AppMobi 및 이벤트 사용

나는 이미지 객체를 생성하여 스테이지에 그려 넣었습니다. 내 문제는 개체에 이벤트를 추가하려는 것입니다.

function objImage(imageURL,x,y,width,height) { 
    this.imgCanvas = new Image(); 
    this.imageURL = imageURL; 
    this.loaded = false; 
    this.x = x; 
    this.y = y; 
    this.height = height; 
    this.width = width; 

    this.draw = function() { 

     if (this.width == null || this.height == null) 
     { 
      ctx.drawImage(this.imgCanvas,this.x,this.y); 
     } 
     else 
     { 
      ctx.drawImage(this.imgCanvas,this.x,this.y,this.width,this.height);   
     } 
    } 
} 

그리고 무대에 그린 : 감지하는 예를 들어,

var usercontrols_left = new objImage('images/left.png',10,HEIGHT-100,50,50); 
usercontrols_left.draw(); 

가 지금은 'usercontrols_left'에 이벤트를 추가 할 내가 사용하여 이미지를 설정 한

사용자가 터치/클릭 할 때

답변

2

directCanvas를 사용하고 있는지 여부를 알 수 없습니다. 나는이 해결책이 어느쪽으로 든 작동해야한다고 생각한다.

터치 스타트 이벤트를 캡쳐하고 왼쪽 요소의 위치에 좌표가 있는지 감지합니다. 그렇다면 해고해야하는 명령을 실행하십시오.

의사 코드 :

Canvas.addEventListener('touchstart', startTouch, false); 

function startTouch(){ 
    if(touch.x<60&&touch.x>10&&touch.y<height-50&&touch.y>height-100) 
    { handleLeftControl(); } 
} 

EDIT *이 대신 웹뷰를 사용하는 예 : 을 웹뷰에서 당신은이 것 :

<div id="Leftbutn" ontouchstart="AppMobi.canvas.execute('switchCommand(\'leftBTNdown\');')" ontouchend="AppMobi.canvas.execute('switchCommand(\'leftBTup\');')" ></div> 

는 그 다음 directCanvas 측에서 그냥 그 명령을 처리

스위치 또는 기능에서 수행하려는 작업.

+0

답장을 보내 주셔서 감사합니다. 나는 directCanvas를 사용하고있다. 특정 요소에 이벤트를 설정하는 방법이 없습니까? –

+1

개인적으로 webview에서 UI를 만든 다음 이벤트를 DC로 전달하는 것이 좋습니다. 유지 관리가 더 쉽기 때문입니다. – appMobiTyler

+0

고마워요! 따라서 HTML로 모든 UI 요소를 만들고 섹션을 표시하거나 숨기는 것이 가장 좋습니다. 메인 메뉴, 게임 플레이 등을 포함하고 이벤트를 DC로 전달하여 기능을 실행합니까? –