private function itemFocusInHandler(event:DataGridEvent):void {
    System.setClipboard((event.target.itemEditorInstance as TextInput).text);
}

<mx:DataGrid width="300" height="200" itemFocusIn="itemFocusInHandler(event)" editable="true">
...

Flash Player 9 시절에는 이게 가능했다.
그러나 한층 업그레이드된 Flash Player 10의 보안 정책을 따르면,
itemFocusIn 등의 User Interaction과 관계없는 이벤트 핸들러에서는 클립보드와 같은 로컬 리소스로의 접근을 제한한다.
(실제로 #2147 런타임 에러가 발생한다.)

결국, 클립보드에 값을 넣기 위해서는 클릭이나 키입력 이벤트를 타고 처리해야 한다는 얘긴데..
Flash Player 10에서 작동하기 위해서는 아래와 같은 꼼수가 필요하다.

private function itemClickHandler(event:ListEvent):void {
    var dg:DataGrid = event.target as DataGrid;
    var col:DataGridColumn = dg.columns[event.columnIndex] as DataGridColumn;
    System.setClipboard(event.itemRenderer.data[col.dataField]);
}
<mx:DataGrid width="300" height="200" itemClick="itemClickHandler(event)" editable="true">
...

뭔가 맞지 않는 느낌이지만 일단 동작은 정상!!
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 모질이

2009/02/13 12:09 2009/02/13 12:09
,
Response
No Trackback , No Comment
RSS :
http://ph0ebus.net/rss/response/80

Trackback URL : http://ph0ebus.net/trackback/80

« Previous : 1 : ... 25 : 26 : 27 : 28 : 29 : 30 : 31 : 32 : 33 : ... 88 : Next »

블로그 이미지

백골이 진토되어 넋이라도 쫀득쫀득.. [사고뭉치 엉클쪼]

- 모질이

Calendar

«   2010/08   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
Statistics Graph