Apollo�v���O���~���O����i2�j

���R�Ȍ`�ɂł���E�B���h�E��
Apollo�A�v�����쐬���悤


�N���X���\�b�h
���c��
2007/5/2


�A�v���P�[�V�����E�B���h�E�̍ő剻�A�ŏ����A���X�g�A�A�N���[�Y�̑���B���ꂼ��̃C�x���g�ɉ������������L�q���āA���R�Ȍ`�ɂł���E�B���h�E������Apollo�A�v���P�[�V�������쐬���悤

�@�f�X�N�g�b�v�ɏ풓���鏬���ȃA�v��������Ă݂����Ǝv���Ă݂����Ƃ͂���܂��񂩁H

�@Apollo���g���ƁA���R�Ȍ`�̃E�B���h�E���쐬������A�E�B���h�E�𑀍삷�邱�Ƃ��ł��܂��B�E�B���h�E�̃T�C�Y�ύX�A�t���X�N���[���A�V�����E�B���h�E�̍쐬�A�E�B���h�E����ɑ΂���C�x���g�����Ȃǂł��B�{�e�ł́A���R�Ȍ`�ɂł���E�B���h�E��Apollo�A�v�����쐬���܂��B

���E�B���h�E�T�C�Y�ύX

�@ �܂��͊ȒP�ȂƂ��납��A �E�B���h�E�T�C�Y�̕ύX�ɂ‚��ďЉ�܂��BApollo�ł́A�A�v���P�[�V�����E�B���h�E�̍ő剻�A�ŏ����A���X�g�A�A�N���[�Y�Ȃǂ̑�����s�����Ƃ��ł��A���ꂼ��̃C�x���g�ɉ������������L�q���邱�Ƃ��ł��܂��B���L�̃v���O�����́A�{�^���C�x���g�ɉ����ăE�B���h�E�T�C�Y��ς����ł��B

1�@�{�^���C�x���g�ɉ����ăE�B���h�E�T�C�Y��ς���

�@�{�^�����N���b�N����C�x���g�ɂ���āA�Ǝ��ɒ�`����minimizeWindow���\�b�h���Ăяo���܂��B

<mx:Button label="�ŏ���" click="minimizeWindow()"/>

�@���̃��\�b�h���ł́Aminimize���\�b�h�ɂ���ăE�B���h�E���ŏ������܂��Bthis�͎����̃I�u�W�F�N�g���Q�Ƃ��܂��Bstage�I�u�W�F�N�g�̓R���e���c�̕`��̈��\���܂��āAwindow�I�u�W�F�N�g�͕`�悳���E�B���h�E���w���܂��B

this.stage.window.minimize();

�@�E�B���h�E��\���N���X�́ANativeWindow�N���X�ŁA�ȉ��̂悤�ȃ��\�b�h�������Ă��܂��B

NativeWindow�N���X�̃��\�b�h

minimize():void �E�B���h�E���ŏ���
maximize():void �E�B���h�E���ő剻
restore():void �E�B���h�E�����̃T�C�Y�ɖ߂�
close():void �E�B���h�E��‚���

<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml
layout="vertical">
�i�{����1�s�j
    <mx:Script>
    <![CDATA[
    public function minimizeWindow():void {
     this.stage.window.minimize();
    }
    public function maximizeWindow():void {
        this.stage.window.maximize();
    }          
    public function restoreWindow():void {
        this.stage.window.restore();
    }          
    public function closeWindow():void {
        this.stage.window.close();
    }
    ]]>
    </mx:Script>
          <mx:HBox>
       <mx:Button label="�ŏ���" click="minimizeWindow()"/>
       <mx:Button label="���X�g�A" click="restoreWindow()"/>
          </mx:HBox>
          <mx:HBox>
       <mx:Button
 label="�ő剻" click="maximizeWindow()"/>
       <mx:Button label="�N���[�Y" click="closeWindow()"/>
          </mx:HBox>
</mx:ApolloApplication>

�@�ȉ��͎��s���ʂɂȂ�܂��B���ꂼ��̃{�^�����N���b�N����ƁA�{�^���ɕR�Â����C�x���g���Ăяo����A�E�B���h�E�̑�����s���܂��B

���1�@�E�C���h�E�T�C�Y������C�x���g�{�^��

���E�B���h�E�N���X

�@Apollo�̃E�B���h�E�ɊY������N���X��NativeWindow�ł��B�E�B���h�E��V�K�쐬����Ƃ��̓I�v�V�����w�肪�ł��A�ݒ��NativeWindowInitOptions�N���X�ɋL�q���܂��B�I�v�V�����ɂ́A�V�X�e���N���[���ⓧ���̐ݒ�Ȃǂ��s���܂��B�܂��A�V�K�쐬���ꂽ�E�B���h�E�̓T�C�Y��^�C�g���Ȃǂ�ݒ肷�邱�Ƃ��ł��܂��B

�@�ȉ��́A�N���b�N�ɉ����ĐV�����E�B���h�E���쐬�����ł��B

2�@�{�^���N���b�N�ŐV�����E�B���h�E���쐬

�@�{�^�����N���b�N����C�x���g�ɂ����createWindow���\�b�h���Ăяo����܂��B

<mx:Button label="�E�B���h�E����" click="createWindow()"/>

�@createWindow���\�b�h�̒������Ă��������B�V�K�ɃE�B���h�E���쐬����O�ɃE�B���h�E�쐬�I�v�V�������w�肷�邽�߂ɁANativeWindowInitOption�N���X�̃C���X�^���X�𐶐����Ă��܂��B

var options:NativeWindowInitOptions = new NativeWindowInitOptions(); 
options.systemChrome = NativeWindowSystemChrome.STANDARD;
options.transparent = false;

systemChrome �v���p�e�B�ɂ́A�V�X�e���N���[���ݒ���w�肵�܂��B�ݒ�l�́ANativeWindowSystemChrome�N���X�̒萔��p���܂��B�ȉ��͐ݒ�l��ł��B�A���t�@�łł́A�ꕔ�̃N���[���ݒ�͍s�����Ƃ��ł��܂���B

ALTERNATE ��փN���[��
NONE �N���[����\�����Ȃ�
STANDARD �W���N���[��
UTILITY ���[�e�B���e�B�N���[��

<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
            private function createWindow():void{
                var options:NativeWindowInitOptions = new NativeWindowInitOptions();
                options.systemChrome = NativeWindowSystemChrome.STANDARD;
                options.transparent = false;
                var newWin:NativeWindow = new NativeWindow(false, options);
                newWin.width = 150;
                newWin.height = 100;
                newWin.title = "�V�����E�B���h�E�̃^�C�g��";
                newWin.visible = true;
            }
        ]]>
    </mx:Script>
    <mx:Button label="�E�B���h�E����" click="createWindow()"/>
</mx:ApolloApplication>

�@NativeWindow�N���X�́A�A�v���P�[�V�������f�X�N�g�b�v��̃v���[���Ƃ��ē���i�ȉ��A�f�X�N�g�b�v�A�v���j���Ă���ꍇ�̂ݗL���ł��B���ݎ��s���Ă���A�v�����f�X�N�g�b�v�v���[���Ƃ��ē��삵�Ă��邩�m�F����ɂ�System.Capabilities.playerType�̃v���p�e�B���m�F���܂��B

3�@���ݎ��s���Ă���A�v�����f�X�N�g�b�v�v���[���Ƃ��ē��삵�Ă��邩�m�F

  public function isDesktopPlayer():Boolean
  {
      return (Capabilities.playerType == 'Desktop');
  }

���E�B���h�E����C�x���g

�@�������ꂽ�E�B���h�E�ւ̑���ɑΉ������ăC�x���g�����蓖�Ă邱�Ƃ��ł��܂��B�E�B���h�E�̏�ԕύX�ɑΉ�����NativeWindowDisplayStateEvent�ƁA�E�B���h�E�̃T�C�Y��ʒu�̕ύX�ɑΉ�����NativeWindowBoundsEvent�𗘗p���Ă��܂��B

�@�ȉ��́A�V�K�쐬�����E�B���h�E�̃T�C�Y��ύX�E�ړ����������Ƃ��ɃC�x���g���������邱�Ƃ��m�F�����ł��B

������m�F�����邽�߂ɂ́A�v���W�F�N�g����ʼnE�N���b�N�����āA�f�o�b�O���ڂ���A�v���P�[�V�����̎��s��I�����܂��B�f�o�b�O���s������ƁAtrace���̏o�͂��R���\�[����Ŋm�F���邱�Ƃ��ł��܂��B

4�@�E�B���h�E�̃T�C�Y��ύX�E�ړ��������Ƃ��ɃC�x���g�����̊m�F

<?xml version="1.0" encoding="utf-8"?>
<mx:ApolloApplication xmlns:mx="http://www.adobe.com/2006/mxml">
    <mx:Script>
        <![CDATA[
            import mx.utils.ObjectUtil;
            private var i:int=0;
            
            private function onMoveWindow(event:NativeWindowBoundsEvent):void{
                trace("�ړ�:",event.target.title,event.target.x,event.target.y);
            }

            private function onResizeWindow(event:NativeWindowBoundsEvent):void{
                trace("���T�C�Y:",event.target.title,event.target.width,event.target.height);
            }            

            private function onDisplayChange(event:NativeWindowDisplayStateEvent):void{
                trace("��ԕύX:",event.target.title,event.target.displayState);
            }
            
            
            private function createWindow():void{
                var options:NativeWindowInitOptions = new NativeWindowInitOptions();
                options.systemChrome = NativeWindowSystemChrome.STANDARD;
                options.transparent = false;
                var createdWindow:NativeWindow = new NativeWindow(false, options);
                createdWindow.width = 150;
                createdWindow.height = 100;
                createdWindow.title = "�V�����E�B���h�E�̃^�C�g�� "+i++;
                createdWindow.visible = true;
                createdWindow.addEventListener(NativeWindowBoundsEvent.MOVE,on
MoveWindow);
�i�{����1�s�j
                createdWindow.addEventListener(NativeWindowBoundsEvent.RESIZE,
onResizeWindow);
�i�{����1�s�j 
                createdWindow.addEventListener(NativeWindowDisplayStateEvent.
DISPLAY_STATE_CHANGE,onDisplayChange);
�i�{����1�s�j 
            }
        ]]>
    </mx:Script>
    <mx:Button label="�E�B���h�E����" click="createWindow()"/>
</mx:ApolloApplication>

�@��L��̉�������܂��B�{�^�����N���b�N����ƁA�C�x���g�ɔ�������createWindow���\�b�h���Ă΂�܂��B

 <mx:Button label="�E�B���h�E����" click="createWindow()"/>

�@createWindow���\�b�h���̑O�������͑O��̗�Ɠ����ł��B�������ꂽNativeWindow�C���X�^���X��title�v���p�e�B�ɂ̓E�B���h�E�̃^�C�g�����ݒ肳��܂��Bvisible�v���p�e�B�ɂ͕\��/��\���̐ݒ肪�ł��܂��B�ŏ�����\���ɂ��Ă����ƁA���[�h��ʂ������܂��̂ŁA�ŏ��͔�\����false�ɐݒ肵�āA�E�B���h�E�̊e�평�������I�������ɕ\���̂���������ݒ肷��悤�ȗp�r���l�����܂��B

createdWindow.title?=?"�V�����E�B���h�E�̃^�C�g��?"+i++;
createdWindow.visible?=?true;

�@���̃C�x���g���X�i�[�o�^�����͊̂ƂȂ鏑�����ł��B

�@createdWindow�C���X�^���X��addEventListener���\�b�h���g���ă��X�i�[��o�^���܂��B�C�x���g���́ANativeWindowBoundsEvent.MOVE�ł��B�C�x���g�����������ۂ�onMoveWindow���\�b�h���Ăяo���܂��B���̂悤�ȏ�������ActionScript�ł͈�ʓI�ŁA�C�x���g�h���u���ȏ������ɂȂ�܂��B

createdWindow.addEventListener(NativeWindowBoundsEvent.MOVE,onMoveWindow);

�@�E�B���h�E�̑���Ɋւ���C�x���g���ɂ͈ȉ��̂悤�Ȏ�ނ�����܂��B

NativeWindowBoundsEvent.MOVING �E�B���h�E���������O�ɔ���
NativeWindowBoundsEvent.MOVE �E�B���h�E������������ɔ���
NativeWindowBoundsEvent.RESIZING �E�B���h�E�����T�C�Y���钼�O�ɔ���
NativeWindowBoundsEvent.RESIZE �E�B���h�E�����T�C�Y���钼��ɔ���

1/2

�@INDEX
Apollo�v���O���~���O����i2�j
Page1
�E�B���h�E�T�C�Y�ύX���E�B���h�E�N���X���E�B���h�E����C�x���g
  Page2
�ŏ������ɃG�t�F�N�g���t���X�N���[�����J�X�^���N���[��




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

���ڂ̃e�[�}

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

�{�� ����