2011-03-23 2 views
0

에서 'id'로 객체 가져 오기 더 나은 방법이있을 수 있으므로 제안 해주세요.AIR windowedApplication

AIR 기능을 호출하는 자바 스크립트가 있습니다. 이 AIR 기능은 새로운 HTML 요소를 생성하고 그래서 같이 "단계"에 추가 : 나는 또한 ID를 기반으로 프레임의 location을 설정하는 기능을 가지고있어 지금

// guid is the ID given to the new window (HTML element) by javascript 
private function createNewWindow(guid:String):void { 
    var frame:HTML = new HTML(); 
    frame.id = guid; 

    addElement(frame); 
} 

... 이것이 나는 고군분투하고있다.

// set the location of the window referenced by it's id (guid) 
private function setLocation(guid:String, location:String):void { 
    // psuedocode. Obviously it won't work. 
    stage.getById(guid).location = location; 
} 

그래서, 내가 어떻게 그 ID를 기반으로 내 HTML 요소를 "GET"합니까?

답변

1

짧은 대답, 그렇지 않습니다. 이것은 자바 스크립트가 아니며, 이는 OO 언어이므로 생각 프로세스를 변경해야합니다. 너 뭐하려고? 항공 애플리케이션 내에서 여러 HTML 창을 만들 수 있습니까? ID 기반 접근법을 원한다면, id와 데이터 구조 (사전과 같은)에있는 컴포넌트에 대한 포인터를 저장할 필요가있을 것이다.

private var _components:Dictionary = new Dictionary(); 
this._components['someId'] = someComponent; 

그리고 거기에서 구성 요소를 저장/반환하는 기능을 추가 할 수 있습니다. 나는 당신의 접근 방식과 당신이 이루고자하는 것이 무엇인지 완전히 확신하지 못하지만, 제 직감은 당신이 옳은 일을하지 않는다고 말해줍니다.

+0

"하지만 내 직감은 당신이 옳은 일을하지 않는다고 말해줍니다." 하하. 아주 사실! 당신은 당신의 가정에서 맞습니다. 여러 HTML 창을 만들고 VIA javascript와 상호 작용할 것입니다. 방금 추가 된 모든 프레임의 배열을 반복하면서 get 메소드를 작성했습니다. 그 과정에서 ID를 확인했습니다. '사전'은 완벽합니다. –

+0

그리고 사이드 노트 : 자바 스크립트는 종종 어느 정도 OO 언어로 mascarades. 이제는 신뢰할 수있는 빌트인'getById'가 없다는 것을 알게되었습니다. 저는 ActionScript 스크립트에 자바 스크립트 애플리케이션을 거의 직접 연결할 수 있어야합니다. 그것들이'this.getChildByName ("myid")'함수라는 사실은 저를 잘못된 경로로 인도합니다. 당신의 도움을 주셔서 감사합니다! –

+0

정확히 왜 '왜'하는지 물어볼 수 있습니까? 어떤 문제를 해결하려고합니까? –

관련 문제