Skip to content

Instantly share code, notes, and snippets.

@shallaa
Last active December 30, 2015 02:39
Show Gist options
  • Save shallaa/7764542 to your computer and use it in GitHub Desktop.
Save shallaa/7764542 to your computer and use it in GitHub Desktop.
HTML component click event dispatch
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
width="400" height="364"
showStatusBar="false"
creationComplete="onCreationCompleteApp()">
<fx:Script>
<![CDATA[
/** contextMenu */
private var _contextMenu:RadioContextMenu;
/** html document */
private var _document:Object;
/**
* add creation complete handler
*/
private function onCreationCompleteApp():void
{
// tray 설정 후에..
_contextMenu.addEventListener( DataEvent.DATA, onDataContextMenu );
html.addEventListener( Event.COMPLETE, onCompleteHTML );
}
/**
* html complete handler
*/
private function onCompleteHTML( event:Event ):void
{
// set document
_document = html.htmlLoader.window.document;
}
/**
* 클릭 이벤트 발생
*/
private function dispatchClickEvent( className:String ):void
{
if ( _document )
{
var target:Object;
target = _document.getElementsByClassName( className )[0];
if ( target )
{
var event:Object;
event = _document.createEvent( "MouseEvent" );
event.initMouseEvent( "click", true, true, "window" );
target.dispatchEvent( event );
}
}
}
/**
* context menu select
*/
private function onDataContextMenu( event:DataEvent ):void
{
switch ( event.data )
{
case "[열기 메뉴 선택시]":
activate();
break;
case "[다음곡 메뉴 선택시]":
dispatchClickEvent( "[다음곡 버튼 클래스 명]" );
break;
case "[좋아요 메뉴 선택시]":
dispatchClickEvent( "[좋아요 버튼 클래스 명]" );
break;
case "[싫어요 메뉴 선택시]":
dispatchClickEvent( "[싫어요 버튼 클래스 명]" );
break;
case "[닫기 메뉴 선택시]":
exit();
break;
}
}
]]>
</fx:Script>
<mx:HTML id="html" width="100%" height="100%" horizontalScrollPolicy="off"
verticalScrollPolicy="off">
</mx:HTML>
</s:WindowedApplication>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment