2012-08-12 5 views

답변

2

DHTML 런타임을 만들었을 때 OpenLaszlo 팀은 LZX를 사용하는 개발자로부터 HTML div 구조의 구현 세부 정보를 숨기기로 결정했습니다. 뷰의 기본 객체 구조에 직접 액세스하는 것은 좋지 않지만, 수행해야 할 상황이 있지만 향후 플랫폼 업데이트로 인해 응용 프로그램이 중단 될 수 있습니다.

다음과 같은 간단한 예제 응용 프로그램을 가지고 :

<canvas debug="false"> 

    <view name="v1" x="10" y="10" width="100" height="100" bgcolor="red"> 
    </view> 

</canvas> 

쿼리 문자열

lzoptions의 = 프록시 (참) % 2Cruntime (DHTML) & 대상 = HTML

를 사용하여 응용 프로그램을 컴파일하는 경우를

개발자 콘솔 없이도 응용 프로그램을 사용할 수 있습니다. 나는 CSS 정보를 제거하고 ID = V1과 뷰를 나타내는 사업부를 표시하는 주석을 추가 한

<body> 
    <div id="appcontainer" style="height: 100%; width: 100%; margin: 0px; padding: 0px; border: 0px none; overflow: hidden; text-align: left; "> 
    <div class="lzappoverflow" style="width: 1905px; height: 429px; "> 
     <div class="lzcanvascontextdiv" id="lzcanvascontextdiv"> 
     ... 
     </div> 
     <div class="lzcanvasdiv"> 
     <!-- visual part of view instance with id="v1" --> 
     <div class="lzdiv" style="background-color: rgb(255, 0, 0); height: 100px; width: 100px; left: 10px; top: 10px; z-index: 2; "></div> 
     </div> 
    </div> 
    </div> 
</body> 

: 당신은 페이지의 구조를 검사 할 때 이제 다음과 같은 사업부의 구조를 볼 수 있습니다. 뷰 인스턴스는 시각적 표현에 대한 참조를 저장하는 JavaScript 객체로 인스턴스화되므로 id 값 'v1'을 가진 div는 표시되지 않습니다. 당신은

이있는 뷰의 개체 계층 구조가

<div class=​"lzdiv" style=​"background-color:​ rgb(255, 0, 0)​;​ height:​ 100px;​ width:​ 100px;​ left:​ 10px;​ top:​ 10px;​ z-index:​ 2;​ ">​</div>​ 

돌아갑니다

v1.getDisplayObject()를 호출하여 DIV에 액세스 할 수 있습니다 *보기 ->를 스프라이트 -> __ LZdiv * 재산. 즉, 각 뷰에 대해 OpenLaszlo는 런타임 특정 스프라이트 객체를 인스턴스화합니다. 그러면 해당 객체가 DHTML 런타임에 해당 div를 생성합니다. 당신이 관심이 있다면

v1.sprite .__ LZdiv.style.backgroundColor "RGB (255, 0, 0)"여기

LzViewLzSprite 클래스의 구현에 대한 링크가 있습니다

+0

고마워요. 왜 Laszlo가 OpenLaszlo 앱과 JavaScript/CSS를 쉽게 통합 할 수 있도록 API를 만들지 않은지 궁금합니다. 특히 지금은 플래시가 더 이상 매력적이지 않습니다. –

+0

OpenLaszlo는 버전 4.x가 출시되기 전에 Flash에 대한 컴파일 만 지원하는 데 사용됩니다. 불행히도 HTML5/DHTML 모드를 추가하면 플래시 모델과 동일하게 유지되므로 HTML5 + JavaScript 애플리케이션을 기술적으로 출력하더라도 OpenLaszlo 플랫폼은 Flash 플랫폼과 동일한 제한 사항을 제공합니다. 애플이 아이 패드에서 플래시를 없애기 오래 전에 플래시가 "왕"이었고 HTML5가 상당히 새로운 시대에 안드로이드 4.1 등에서 플래시를 떨어 뜨리기 오래 전에 OpenLaszlo의 공식 릴리스가 거의 2 년간 없었다. – Kmeixner

관련 문제