ログイン
ユーザ名:

パスワード:


パスワード紛失

新規登録
メインメニュー
フォーラム一覧   -   トピック一覧
   超ビギナー
     addEventListnerしてみたけれど…
投稿するにはまず登録を

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 トピック
e2718271
投稿日時: 2009-1-5 16:37
お馴染みさん
登録日: 2008-5-4
居住地:
投稿: 13
addEventListnerしてみたけれど…
こんにちは。いつもお世話になっております。

AIRでzip画像ビューアを作っていまして、「左キーを押せば次の画像が表示される」という挙動を実現したいのです。

ですが、私の書いたコードでは、
「アプリケーションを起動した後、"Load Zip"ボタン(名前は何でもいいのですが…)を押さないと、左キーを押しても反応が無い」
という現象が起きてしまいました。

どのように修正すればいいのでしょうか?
なお、ライブラリとしてFZipを使用しています。


<?xml version="1.0" encoding="utf-8"?>
<mx:WindowedApplication xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
	 width="1024" height="768" creationComplete="onInit();" backgroundGradientAlphas="[1.0, 1.0]"
	 backgroundGradientColors="[#000000, #000000]" horizontalScrollPolicy="off" verticalScrollPolicy="off">
	<mx:Script>
		<![CDATA[
			import deng.fzip.FZip;
			import deng.fzip.FZipFile;
			
			import flash.display.*;
			import flash.events.*;
			import flash.net.URLRequest;
			import flash.text.TextField;
			
			
			private var zip:FZip = new FZip();
			private var index:int = 0;
			
			private function onInit():void{
				zip.load(new URLRequest("C:\\Documents\ and\ Settings\\MyName\\デスクトップ\\ねこなべ.zip"));
				addEventListener(KeyboardEvent.KEY_DOWN, keydown);
			}
			private function onClick():void{
				if(zip.getFileCount() > index){
					var file:FZipFile = zip.getFileAt(index);
					var loader:Loader = new Loader();
					loader.loadBytes(file.content);
					image01.addChild(loader);
					index++;
				}
			}
			private function keydown(event:KeyboardEvent):void{
				//KeyCode 37← 38↑ 39→ 40↓
				if(event.keyCode!=37){return;}
				
				if(zip.getFileCount() > index){
					var file:FZipFile = zip.getFileAt(index);
					var loader:Loader = new Loader();
					loader.loadBytes(file.content);
					image01.addChild(loader);
					index++;
					
				}else{
					return;
				}
			}
			private function fullScreen():void{
				root.stage.displayState = StageDisplayState.FULL_SCREEN;
			}

		]]>
	</mx:Script>
	<mx:Button x="80" y="332" label="Load Zip" click="onClick();" borderColor="#FFFFFF" fillAlphas="[1.0, 1.0]" fillColors="[#F1F1F1, #F1F1F1]"/>
	<mx:Image x="270" y="0" width="478" height="766" id="image01" scaleContent="true"/>
	<mx:Button x="80" y="362" label="Fullscreen" click="fullScreen();" borderColor="#FFFFFF" fillAlphas="[1.0, 1.0]" fillColors="[#F1F1F1, #F1F1F1]"/>
</mx:WindowedApplication>

goki
投稿日時: 2009-1-5 16:56
ご主人様
登録日: 2007-8-27
居住地: おかのよこはま
投稿: 735
Re: addEventListnerしてみたけれど…
"Load Zip"ボタンでなくても良いようですが、
アプリケーション上のキーイベントを拾えるコンポーネントにフォーカスが当たっていないと、キーイベントを拾えないようです。

onInit()で、Load Zipボタンにフォーカスを当てておくと
キーイベントは拾えます。
e2718271
投稿日時: 2009-1-7 19:32
お馴染みさん
登録日: 2008-5-4
居住地:
投稿: 13
Re: addEventListnerしてみたけれど…
勉強になりました!
ありがとうございます。
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ

投稿するにはまず登録を