Flex2��Web�A�v���J���i�ŏI��j

���Z��XML�R�[�h�ŃT�[�o�ʐM������Flex2

�N���X���\�b�h
�����@��
2007/4/18


Flex�A�v���P�[�V�����Łu�T�[�o�ʐM�v���s�����@�ƁAXML�̑��삪�ȒP�ɒZ���R�[�h�ŁA�p�t�H�[�}���X�����コ����uE4X�v���Љ�

�@�O��u�f�[�^�o�C���f�B���O�ŃI�u�W�F�N�g�Ԃ̃f�[�^�󂯓n���v�ł́A�f�[�^�o�C���f�B���O�ɂ‚��ďЉ�܂����B

�@�����Flex�A�v���P�[�V�����Łu�T�[�o�ʐM�v���s�����@�ƁAXML�̑��삪�ȒP�ɁA���Z���R�[�h�ŁA�p�t�H�[�}���X�����コ����uE4X�v�ɂ‚��ďЉ�܂��B

���T�[�o�ʐM

�@Flex�ŃT�[�o�ʐM���s���ꍇRPC�T�[�r�X�𗘗p���܂��BRPC�T�[�r�X�ɂ͈ȉ��̂��̂��p�ӂ���Ă��܂��B

�EHTTPService

�@HTTP�ɂ��GET�APOST���g�p���ăf�[�^�̑���M���s���܂��B

�EWebService

�@SOAP���g�p����Web�T�[�r�X�Ƃ̃f�[�^�̑���M���s���܂��B

�ERemoteObject

�@�����[�g��Java�N���X�ɒ��ڃA�N�Z�X���邱�Ƃ��ł��܂��B

�@�g�p����ɂ�Flex Data Service���K�v�ł��B

��HTTPService�ɂ��ʐM�̗�

�@�ł͎��ۂ�HTTPService�ɂ��ʐM�̗�����Ă����܂��傤�B�T���v����YouTubeAPI�𗘗p�����r�f�I�����A�v���P�[�V�����ł��B�Ȃ����ۂɂ��̃T���v�������s����ɂ́AYouTube�f�x���b�p�[ID�̓o�^���K�v�ł��B

���1YouTubeAPI�𗘗p�����r�f�I�����A�v���P�[�V����

��F2YouTube.mxml

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" 
     xmlns:net="flash.net.*"
     layout="vertical" 
     >

     <mx:Script>
          <![CDATA[
               import mx.controls.Image;
               import mx.controls.Alert;
               import mx.managers.CursorManager;
               import mx.rpc.events.FaultEvent;
               import mx.rpc.events.ResultEvent;
               
               private function searchVideo():void{
                    var param:Object = new Object();
                    param.method = "youtube.videos.list_by_tag";
                    param.dev_id = �擾�����f�x���b�p�[ID;
                    param.tag = searchText.text;
                    
                    searchVideoService.send(param);
                    
                    CursorManager.setBusyCursor();
                    enabled = false;
                    
               }
               
               private function searchResult(event:ResultEvent):void{
                    CursorManager.removeBusyCursor();
                    enabled = true;
                    
                    resultDataGrid.dataProvider = event.result.video_
list.video;�i�{����1�s�j
               }
               
               private function searchFault(event:FaultEvent):void{
                    CursorManager.removeBusyCursor();
                    enabled = true;

                    Alert.show(event.message.toString());
               }
          ]]>
     </mx:Script>
     
     <mx:HTTPService id="searchVideoService" 
          url="http://www.youtube.com/api2_rest" 
          result="searchResult(event)" 
          fault="searchFault(event)"
          resultFormat="e4x" />

     <mx:Panel 
          width="100%" height="100%" layout="vertical" 
          paddingBottom="5" paddingLeft="5" paddingRight="5"
 paddingTop="5">�i�{����1�s�j
          <mx:HBox>
               <mx:TextInput id="searchText" 
                    enter="searchVideo()"/>
               <mx:Button id="searchButton" 
                    label="�{�^��" 
                    click="searchVideo()"/>
          </mx:HBox>

          <mx:DataGrid height="100%" width="100%" id="resultDataGrid"
               rowHeight="60">
               <mx:columns>
                    <mx:DataGridColumn dataField="title" />
                    <mx:DataGridColumn dataField="thumbnail_url"
 itemRenderer="{new ClassFactory(Image)}" />�i�{����1�s�j
                    <mx:DataGridColumn dataField="author" />
                    <mx:DataGridColumn dataField="length_seconds" />
                    <mx:DataGridColumn dataField="comment_count" />
               </mx:columns>
          </mx:DataGrid>

     </mx:Panel>
</mx:Application>

�@HTTPService���g�p���邽�߂ɁA<mx:HTTPService>�^�O���L�q���܂��Burl�ɑΏۂ̃T�[�r�X��URL���w�肵�܂��BRPC�T�[�r�X�ł͒ʐM������Ɋ��������Ƃ��Ǝ��s�����Ƃ��ɁA���ꂼ��result�C�x���g��fault�C�x���g�����o����܂��B

�@�]���āA���ꂼ��̃C�x���g�n���h����searchResult()�AsearchFault()�Ƃ��Ē�`���܂��B

�@�����L�[���[�h����͂��āA�G���^�[�L�[�������͌����{�^�������������ۂɌĂ΂��C�x���g�n���h��searchVideo()���ł́A�T�[�r�X�ɕK�v�Ȉ������I�u�W�F�N�g�Ɋi�[���AHTTPService��send()���\�b�h���Ăяo���܂��Bsend()���\�b�h�̓T�[�r�X�ɗv���𑗏o���邽�߂̃��\�b�h�ł��B

�@Flex�A�v���P�[�V�����ɂ����ẴT�[�o�ʐM�͂��ׂĔ񓯊��ōs���܂��B�‚܂�A�ʐM�̊�����҂����ɏ����𑱂��邱�Ƃ��ł��܂��B���̂��߃��[�U�[��2�d����Ȃǂ�h��������A�ʐM���ł��邱�Ƃ�������悤�ȕ\�����s�����Ƃ��]�܂����̂ł��B

�@���̃T���v���ł�CursorManager��p���ă}�E�X�J�[�\����ʐM���ł��邱�Ƃ�\���A�C�R���ɕύX���A���ƒA�v���P�[�V�����S�̂𑀍�ł��Ȃ��悤�ɐݒ肵�Ă��܂��B

��ECMAScript for XML

�@���ۂɃT�[�r�X�ɗv���𑗐M���Aresult�C�x���g������ɌĂяo���ꂽ��A���x�͌��ʂ̓��e����ʂɕ\�����܂��B

�@result�C�x���g�ł�ResultEvent�I�u�W�F�N�g�������Ƃ��ēn����܂��B�T�[�r�X�̌��ʂ�ResultEvent�I�u�W�F�N�g��event.result���Ɋi�[����܂��B����g�p�����T�[�r�X�ł͌��ʂ�XML�`���œn����܂��B

�@�����ŁAFlex�A�v���P�[�V������XML�������֗��ȕ��@�Ƃ���E4X�Ƃ������̂�����̂ŏЉ�܂��B

��E4X

�@E4X�Ƃ�ECMAScript for XML�̂��ƂŁAECMAScript 3�̊g���Ƃ��ĊJ�����ꂽXML���������߂̎d�l�ł��BXML�̑��삪�ȒP�ɁA���Z���R�[�h�ŁA�p�t�H�[�}���X�����コ���邽�߂ɁAECMAScript��XML���l�C�e�B�u�ɃT�|�[�g����K�i�ł��B

�@�ȒP�ɂ����΁AXML�̊K�w�\����.�i�h�b�g�j�ɂ���Ă��ǂ邱�Ƃ��ł��A�����ւ̃A�N�Z�X��@�i�A�b�g�}�[�N�j�Ŏw�肷�邱�Ƃ��ł��܂��B

�@�܂�����̃m�[�h�������ɂ���Ē��o���邱�Ƃ��ł��邽�߁A���ɗe�Ղ�XML���������Ƃ��ł��܂��B

�@HTTPService��resultFormat������e4x���w�肷�邱�Ƃɂ��A���ʂ�E4X�ň������Ƃ��”\�ɂȂ�܂��B

�@��قǏq�ׂ��Ƃ��茋�ʂ�XML��event.result�Ɋi�[����Ă��܂��B

�@���̃T�[�r�X�ł͌������ʂ̃r�f�I����video_list�ȉ���video�v�f�ł��̂ŁA�����E4X�Ŏw�肷��ɂ́A

event.result.video_list.video

�Ƃ��܂��B

�@E4X�ŗv�f�����w�肵���Ƃ��ɓ��K�w�ɓ����v�f������������ꍇ�́AXMLList�Ƃ��Ď擾�ł��܂��B

�@�����DataGrid��dataProvider�ɓn���ƁA���炩����DataGridColumn�Őݒ肵��dataField�̒l�ɉ����Č��ʂ����f����邱�ƂɂȂ�܂��B

�@�����HTTPService�̂ݏЉ�܂������ARPC�T�[�r�X�̊�{�I�ȋL�q�͂��ׂē����ł��̂ŁA���ꂼ������𓥂܂��āA�ꍇ�ɉ����čŗǂ̂��̂�I�����Ă����̂��悢�ł��傤�B

�@�uFlex2��Web�A�v���J���v�̘A�ڂł́AFlex2�̓����I�ȋ@�\��p�����T���v���̍쐬��ʂ��āA��{�I��Flex2�A�v���P�[�V�����̊J����@��������Ă��܂����B�ŏI��ł́AYouTube�ƘA�g�ł���ȒP��Web�A�v���̍쐬�̎d�����Љ�܂������A�������ł����ł��傤���H �݂Ȃ����Web�A�v���P�[�V�����J���̏����ɂȂ�ƍK���ł��B

�v���t�B�[���F�����@�ׁi�Ȃ邹 �‚Ƃށj
�N���X���\�b�h��������@�G���^�[�v���C�Y�T�[�r�X����A�[�L�e�N�g
Macromedia FLASH MX 2004 Developer�F��Z�p��
Flash�G���W�j�A�Ƃ���Web������o���̂�Web�A�v���P�[�V�����J���Ɍg���BFlex��WPF�Ȃǂ�RIA�J������ыZ�p��������X�s���Ă���B

�N���X���\�b�h������Ђł̎�ȊJ�����т́A�������̓d�q�t�@�C�����O�V�X�e���A�Ђ܂��،��̃I�����C���g���[�h�V�X�e���A�x���V�X�e��24�̉c�Ǝx���V�X�e���ȂǁB
�u���O�iC:\narun�j���X�V���B��Ђ�RIA���ԕ�W���B






HTML5 + UX �t�H�[���� �V���L��
��IT���[���}�K�W���@�V������X�^�b�t�̃R���������[���œ͂��܂��i�����j

���ڂ̃e�[�}

HTML5�{UX �L�������L���O

�{�� ����