SlideShare une entreprise Scribd logo
1  sur  39
Télécharger pour lire hors ligne
SSAW08 後期第5回

ActionScript 3.0入門 (2)
外部イメージの読み込み
2008年10月14日
本日の内容

• 外部イメージファイルをロードする
  • ローカルデータだけでなく、インターネット上のデータのローディング
    にも対応
  • データのロード状況のモニタリング


• 外部XMLファイルの読み込み
  • 読み込むイメージファイルの場所を外部XMLファイルで定義する
  • 今後Web APIを使用していく際に重要となるテクニック
外部イメージファイルをロードする (1)

• 外部イメージファイルをロードするには
  • Loaderクラスを利用する
  • SWF ファイルまたはイメージ (JPG、PNG、または GIF) ファイルをロー
    ドする
  • ロードされた表示オブジェクトは Loader オブジェクトの子として追加
    される


 • 手順
   • LoaderクラスのインスタンスloaderObjを生成
   • loaderObj.load(urlReq)でロード
外部イメージファイルをロードする (1)

• ロード状況のモニタリング
  • loaderObj.contentLoaderInfoオブジェクトにリスナーを登録して、
    ロード状態をモニタリングすることが可能


  • ロードの状態
    • Event.COMPLETE
       • ロードが完了した際にイベント生成
    • ProgressEvent.PROGRESS
       • ロード中の際にイベント生成
    • IOErrorEvent.IO_ERROR
       • ロードにエラーが発生した際にイベント生成
外部イメージファイルをロードする

• 外部イメージを読み込むための汎用的なクラスを作成する
• ImageLoader.as
   • URLを引数で読み込んでLoaderを生成
   • イベントリスナーを登録
   • ロード中は、読み込んだデータをパーセント表示
   • ロード終了後は、表示リストに外部イメージのデータを登録
外部イメージファイルをロードする (1)




               画像のURL                画像のURL

                          Internet

               画像データ                 画像データ
    Flashページ
                                              画像ファイル
※Flashファイル内にファイルのURLを指定




           外部イメージのロード (画像URL情報はFlashに内包)
外部イメージファイルをロードする (1)

• メインクラスLoadingImage.as
  • ImageLoaderクラスを呼び出して、表示リストに加える
  • 複数のImageLoaderを同時に呼び出すことも可能
外部イメージファイルをロードする (1)
プロジェクトのクラス構造




                                                 ImageLoader

                              -   _url:String;
                              -   _imgLoader:Loader;
       LoadImage              -   _perFld:TextField;
                      1   *   -   _width:Number;
                              -   _height:Number;
 + LoadImage()
                              +   ImageLoader(url:String, w:Number, h:Number)
 ・メインクラス                      -   onLoaded(event:Event):void
  - 張り込む画像の数だけ、               -   onProgress(event:ProgressEvent):void
   ImageLoaderを呼び出す           -   setupPercentField():void

                              ・Loaderに外部画像を読込むクラス
                                - Loaderを生成
                                - 指定されたURLの画像をネットから読込
                                - Loaderに画像データを読込み、ステージに表示
外部イメージファイルをロードする (1)
LoadImage.as:メインクラス

//
//   LoadImage.as:メインクラス
//

package {
	   import flash.display.*;
	   import flash.text.TextField;
	   [SWF(backgroundColor="#cccccc", frameRate="60")]
	   public class LoadImage extends Sprite {
	   	     //--------------------------------------
	   	     // CONSTRUCTOR
	   	     //--------------------------------------
	   	     public function LoadImage()
	   	     {
	   	     	    //ステージ設定
	    	    	    stage.align = StageAlign.TOP_LEFT;
	    	    	    stage.scaleMode = StageScaleMode.NO_SCALE;
	    	    	    //イメージのURLを配列として定義
	    	    	    var urlArray:Array = [
	    	    	    "http://farm4.static.flickr.com/3098/2921424076_48f37924a2.jpg?v=0",
	    	    	    "http://farm4.static.flickr.com/3203/2920571465_050105da5f.jpg?v=0",
	    	    	    "http://farm4.static.flickr.com/3214/2921415746_e8376d6f59.jpg?v=0",
	    	    	    "http://farm4.static.flickr.com/3070/2921414706_00b1fc438e.jpg?v=0",
	    	    	    "http://farm4.static.flickr.com/3209/2920568583_6e5dc15d3a.jpg?v=0",
外部イメージファイルをロードする (1)
LoadImage.as:メインクラス

	   	   	   "http://farm4.static.flickr.com/3074/2921412810_a0bdc56c6b.jpg?v=0",
	   	   	   "http://farm4.static.flickr.com/3101/2921410832_3308c416c0.jpg?v=0",
	   	   	   "http://farm4.static.flickr.com/3090/2920562279_7c689e033b.jpg?v=0",
	   	   	   "http://farm4.static.flickr.com/3034/2920561829_603508c635.jpg?v=0"];
	   	   	
	   	   	   //それぞれのイメージを読み込み、グリッド状に配置して、表示リストに追加
	   	   	   for(var i:uint = 0; i < urlArray.length; i++){
	   	   	   	    var img:ImageLoader = new ImageLoader(urlArray[i], 240, 180);
	   	   	   	    img.x = (i % 3) * 240;
	   	   	   	    img.y = int(i / 3) * 180;
	   	   	   	    addChild(img);
	   	   	   }
	   	   }
	   }
}
外部イメージファイルをロードする (1)
ImageLoader.as:画像をロードするクラス

//
//   ImageLoader.as
//   LoadImage
//

package {
	
	   //表示関連
	    import flash.display.Sprite;
	
	    //外部ファイル読み込み関連のパッケージ
	    import   flash.display.Loader;
	    import   flash.display.LoaderInfo;
	    import   flash.net.URLRequest;
	    import   flash.events.Event;
	    import   flash.events.ProgressEvent;
	    import   flash.events.IOErrorEvent;
	
	    //テキストフィールド関連パッケージ
	    import flash.text.TextField;
	    import flash.text.TextFieldAutoSize;
	    import flash.text.TextFormat;
外部イメージファイルをロードする (1)
ImageLoader.as:画像をロードするクラス

	   public class ImageLoader extends Sprite {
	   	     //--------------------------------------
	   	     // CONSTRUCTOR
	   	     //--------------------------------------
	   	     public function ImageLoader(url:String, w:Number, h:Number)
	   	     {
	   	     	    _url = url; //画像URL
	   	     	    _width = w; //画像の表示幅
	   	     	    _height = h; //画像の表示高さ
	   	     	    setupPercentField(); //%表示フィールド表示
	   	     	    _imgLoader = new Loader(); //Loaderを生成
	   	     	    addChild(_imgLoader); //Loaderをステージに追加
	   	     	    //イベントリスナー定義
	   	     	    _imgLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,
onProgress); //読みこみ中
	   	     _imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded); //読
みこみ完了
	   	     	    //画像の読み込み開始
	   	     	    var urlReq:URLRequest=new URLRequest(_url);
	   	     	    _imgLoader.load(urlReq);
	   	     }
外部イメージファイルをロードする (1)
ImageLoader.as:画像をロードするクラス

	   	   //--------------------------------------
	   	   // PRIVATE VARIABLES
	   	   //--------------------------------------
	   	   private var _url:String;
	   	   private var _imgLoader:Loader;
	   	   private var _perFld:TextField;
	   	   private var _width:Number;
	   	   private var _height:Number;

	   	   //--------------------------------------
	   	   // EVENT HANDLERS
	   	   //--------------------------------------

	   	   //読み込み完了
	   	   private function onLoaded(event:Event):void {
	   	   	    removeChild(_perFld); // %表示を削除
	   	   	    _perFld = null;
	   	   	    _imgLoader.width = _width;
	   	   	    _imgLoader.height = _height;
	   	   }
外部イメージファイルをロードする (1)
ImageLoader.as:画像をロードするクラス

	   	   //ロード経過表示
	   	   private function onProgress(event:ProgressEvent):void {
	   	   	    var per:Number = Math.round(event.bytesLoaded/event.bytesTotal*100);
	   	   	    _perFld.text = per + " %";
	   	   }
	   	
	   	   //--------------------------------------
	   	   // PRIVATE & PROTECTED INSTANCE METHODS
	   	   //--------------------------------------
	   	
	   	   //%フィールド作成
	   	   private function setupPercentField():void {
	   	   	    _perFld = new TextField();
	   	   	    _perFld.x = 10;
	   	   	    _perFld.y = 10;
	   	   	    _perFld.autoSize = TextFieldAutoSize.LEFT;
          var textFormat:TextFormat = new TextFormat();
	   	   	    textFormat.font = "Verdana";
          textFormat.size = 12;
          _perFld.defaultTextFormat = textFormat;
	   	   	    addChild(_perFld);
	   	   }
	   }
}
外部イメージファイルをロードする

• 実行結果
外部イメージファイルをロードする (2)
外部XMLファイルの読み込み

• 現状のソース
  • 読み込む画像ファイルのURLをコード内部に記述している
  • 読み込む画像を変更する度に再コンパイルをする必要あり
    • めんどう


 • 画像ファイルのURLは別ファイルで定義したい
   • XML形式のファイルを利用すると便利
   • XML形式の利点
      • 構造化されたデータ形式
      • AS3で扱いやすい
      • 現在多くのWebAPIで標準的に用いられている
外部イメージファイルをロードする (2)
外部XMLファイルの読み込み

• メインクラスを変更
  • XMLファイルを解析して、URLを抽出
  • 抽出したURLからイメージを読み込む
外部イメージファイルをロードする (2)
外部XMLファイルの読み込み

• 全体の設計
  • XMLファイルを読み込み
          ↓
  • XMLファイルの読み込み完了を検知
          ↓
  • XMLファイルからURLを抽出
          ↓
  • 抽出したURLからローダ生成
          ↓
  • 画像読み込み
          ↓
  • 読み込みが完了した画像から表示
外部イメージファイルをロードする (2)
外部XMLファイルの読み込み

• XMLファイルを読み込むクラスを作成する
• XMLloader.as
   • URLで指定されたXMLファイルをロードする
   • ロードが完了したら、完了したことを通知するイベントを発生
   • EventDispacherを利用する
外部イメージファイルをロードする (2)
外部XMLファイルの読み込み




XMLファイル (※画像のURLを定義)



  画像のURL


                画像のURL                画像のURL

                          Internet

                 画像データ                画像データ
     Flashページ
                                               画像ファイル

                外部イメージのロード (画像URL情報をXMLで定義)
外部イメージファイルをロードする (1)
プロジェクトのクラス構造
                                                XMLLoader

      LoadImage            - _xmlLoader:URLLoader;
                     1   1 - _my_xml:XML;

                             + XMLLoader(url:String)
+ LoadImage()
                             + getXML():XML
・メインクラス                      - onXMLloaded(event:Event):void
 - 張り込む画像の数だけ、
  ImageLoaderを呼び出す           ・XMLをロード
                               - 指定されたXMLファイルをロード
                               - メインクラスにロード完了を通知
                               - ロードされたXMLファイルをメインクラスに返す

                                                ImageLoader

                             -   _url:String;
                             -   _imgLoader:Loader;
                             -   _perFld:TextField;
                         *   -   _width:Number;
                             -   _height:Number;

                             +   ImageLoader(url:String, w:Number, h:Number)
                             -   onLoaded(event:Event):void
                             -   onProgress(event:ProgressEvent):void
                             -   setupPercentField():void
                             ・Loaderに外部画像を読込むクラス
                               - Loaderを生成
                               - 指定されたURLの画像をネットから読込
                               - Loaderに画像データを読込み、ステージに表示
外部イメージファイルをロードする (2)
photo.xml:URLを指定したXMLファイル

<?xml version="1.0" encoding="UTF-8"?>
<data>
   <photoURL>http://farm4.static.flickr.com/3098/2921424076_48f37924a2.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3203/2920571465_050105da5f.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3214/2921415746_e8376d6f59.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3070/2921414706_00b1fc438e.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3209/2920568583_6e5dc15d3a.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3074/2921412810_a0bdc56c6b.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3101/2921410832_3308c416c0.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3090/2920562279_7c689e033b.jpg</photoURL>
   <photoURL>http://farm4.static.flickr.com/3034/2920561829_603508c635.jpg</photoURL>
</data>
外部イメージファイルをロードする (2)
LoadImage.as:メインクラス

//
//   LoadImage
//
//   Created by Atsushi Tadokoro on 08/10/13.
//   Copyright 2008 yoppa.org. All rights reserved.
//

package {
	   import flash.display.*;
	   import flash.events.Event;
	
	   [SWF(backgroundColor="#CCCCCC", frameRate="60")]
	
	   public class LoadImage extends Sprite {
	   	     //--------------------------------------
	   	     // CLASS CONSTANTS
	   	     //--------------------------------------
	   	
	   	     //--------------------------------------
	   	     // CONSTRUCTOR
	   	     //--------------------------------------
	   	     public function LoadImage()
	   	     {
	   	     	    //Stage設定
外部イメージファイルをロードする (2)
LoadImage.as:メインクラス

	   	   	    stage.align = StageAlign.TOP_LEFT;
	   	   	    stage.scaleMode = StageScaleMode.NO_SCALE;
	   	   	
	   	   	    //XMLファイルを読み込む
	   	   	    _xmlLoader = new XMLLoader("./xml/photo.xml");
	   	   	
	   	   	    //イベントリスナーの登録
	   	   	    _xmlLoader.addEventListener(XMLLoader.LOAD_COMPLETE, onXMLloaded);
	   	   }
	   	
	   	   //--------------------------------------
	   	   // PRIVATE VARIABLES
	   	   //--------------------------------------
	   	   private var _xmlLoader:XMLLoader;
	   	   private var _photoXml:XML;
	   	   private var _photoWidth:Number = 240;
	   	   private var _photoHeight:Number = 180;
	   	
	   	   //--------------------------------------
	   	   // GETTER/SETTERS
	   	   //--------------------------------------
	   	   //--------------------------------------
	   	   // PUBLIC METHODS
	   	   //--------------------------------------
外部イメージファイルをロードする (2)
LoadImage.as:メインクラス

	   	   //--------------------------------------
	   	   // EVENT HANDLERS
	   	   //--------------------------------------
	   	   //XMLロード完了後実行
	   	   private function onXMLloaded(event:Event):void {
	   	   	    //ロードしたXMLを取得
	   	   	    _photoXml = _xmlLoader.getXML();
	   	   	
	   	   	    //XMLに記述されたURLの数だけ繰り返し
	   	   	    var i:int = 0;
	   	   	    for each (var url:String in _photoXml.photoURL){
	   	   	    	    //イメージをロードしてグリッド状に配置
	   	   	    	    var img:ImageLoader
                        = new ImageLoader(url, _photoWidth, _photoHeight);
	   	   	    	    img.x = (i%3)*_photoWidth;
	   	   	    	    img.y = int(i/3)*_photoHeight;
	   	   	    	    addChild(img);
	   	   	    	    i++;
	   	   	    }
	   	   }
	   }
}
外部イメージファイルをロードする (2)
XMLLoader.as:XMLを読込みメインクラスに通知

//
//   XMLLoader.as
//   LoadImage
//
//   Created by Atsushi Tadokoro on 08/10/13.
//   Copyright 2008 yoppa.org. All rights reserved.
//

package {
	
	   import flash.events.EventDispatcher;
    import flash.net.URLLoader;
    import flash.net.URLLoaderDataFormat;
    import flash.net.URLRequest;
	   import flash.system.System;
	   import flash.events.Event;
	
	   public class XMLLoader extends EventDispatcher {
	   	
	   	     //--------------------------------------
	   	     // CLASS CONSTANTS
	   	     //--------------------------------------
	   	     public static const LOAD_COMPLETE:String = "load_complete";
外部イメージファイルをロードする (2)
XMLLoader.as:XMLを読込みメインクラスに通知

	   	   //--------------------------------------
	   	   // CONSTRUCTOR
	   	   //--------------------------------------
	   	   public function XMLLoader(url:String)
	   	   {
	   	   	    //URLLoader作成
	   	   	    _xmlLoader = new URLLoader();
	   	   	    _xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
	   	   	    _xmlLoader.addEventListener(Event.COMPLETE, onXMLloaded);
	   	   	    //URL
	   	   	    var urlReq:URLRequest = new URLRequest(url);
	   	   	    //読み込み開始
	   	   	    _xmlLoader.load(urlReq);
	   	   }
	   	
	   	   //--------------------------------------
	   	   // PRIVATE VARIABLES
	   	   //--------------------------------------
	   	   private var _xmlLoader:URLLoader;
	   	   private var _my_xml:XML;
	   	
	   	   //--------------------------------------
	   	   // GETTER/SETTERS
	   	   //--------------------------------------
外部イメージファイルをロードする (2)
XMLLoader.as:XMLを読込みメインクラスに通知

	   	   //--------------------------------------
	   	   // PUBLIC METHODS
	   	   //--------------------------------------
	   	
	   	   //XMLオブジェクトを返す(他のクラスからのアクセスに対応)
	   	   public function getXML():XML{
	   	   	    return _my_xml;
	   	   }
	   	
	   	   //--------------------------------------
	   	   // EVENT HANDLERS
	   	   //--------------------------------------
	   	
	   	   //読み込み完了
	   	   private function onXMLloaded(event:Event):void {
	   	   	    try {
	   	   	    	    //XMLオブジェクトに変換する
	   	   	    	    _my_xml = new XML(_xmlLoader.data);
	   	   	    	    //カスタムイベントを配信する
	   	   	    	    dispatchEvent(new Event(LOAD_COMPLETE));
	   	   	    } catch (err:TypeError) {
	   	   	    	    trace(err.message);
	   	   	    }
	   	   }
外部イメージファイルをロードする (2)
XMLLoader.as:XMLを読込みメインクラスに通知

	   	   //--------------------------------------
	   	   // PRIVATE & PROTECTED INSTANCE METHODS
	   	   //--------------------------------------
	   }
}
外部イメージファイルをロードする (2)
ImageLoader.as:URLから画像を読込む

//
//   ImageLoader.as
//   LoadImage
//

package {
	
	   //表示関連
	    import flash.display.Sprite;
	
	    //外部ファイル読み込み関連のパッケージ
	    import   flash.display.Loader;
	    import   flash.display.LoaderInfo;
	    import   flash.net.URLRequest;
	    import   flash.events.Event;
	    import   flash.events.ProgressEvent;
	    import   flash.events.IOErrorEvent;
	
	    //テキストフィールド関連パッケージ
	    import flash.text.TextField;
	    import flash.text.TextFieldAutoSize;
	    import flash.text.TextFormat;
	
	    public class ImageLoader extends Sprite {
外部イメージファイルをロードする (2)
ImageLoader.as:URLから画像を読込む

	   	    //--------------------------------------
	   	    // CLASS CONSTANTS
	   	    //--------------------------------------
	   	
	   	    //--------------------------------------
	   	    // CONSTRUCTOR
	   	    //--------------------------------------
	   	    public function ImageLoader(url:String, w:Number, h:Number)
	   	    {
	   	    	    //パラメータを格納
	   	    	    _url = url;
	   	    	    _width = w;
	   	    	    _height = h;
	   	    	
	   	    	    //%表示フィールド表示
	   	    	    setupPercentField();
	   	    	
	   	    	    //loader作成
	   	    	    _imgLoader = new Loader();
	   	    	    addChild(_imgLoader);
	   	    	
	   	    	    //イベントリスナー定義
	   	     	    _imgLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS,
onProgress); //読みこみ中
外部イメージファイルをロードする (2)
ImageLoader.as:URLから画像を読込む

	   	        //読みこみ完了	      	    	
             _imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded);
	   	   	
	   	   	    //読み込み開始
	   	   	    var urlReq:URLRequest=new URLRequest(_url);
	   	   	    _imgLoader.load(urlReq);
	   	   }
	   	
	   	   //--------------------------------------
	   	   // PRIVATE VARIABLES
	   	   //--------------------------------------
	   	   private var _url:String;
	   	   private var _imgLoader:Loader;
	   	   private var _perFld:TextField;
	   	   private var _width:Number;
	   	   private var _height:Number;
	   	
	   	   //--------------------------------------
	   	   // GETTER/SETTERS
	   	   //--------------------------------------
	   	   	    	
	   	   //--------------------------------------
	   	   // PUBLIC METHODS
	   	   //--------------------------------------
外部イメージファイルをロードする (2)
ImageLoader.as:URLから画像を読込む

	   	   //--------------------------------------
	   	   // EVENT HANDLERS
	   	   //--------------------------------------
	   	
	   	   //読み込み完了
	   	   private function onLoaded(event:Event):void {
	   	   	    //プログレスフィールド削除
	   	   	    removeChild(_perFld);
	   	   	    _perFld = null;
	   	   	    _imgLoader.width = _width;
	   	   	    _imgLoader.height = _height;
	   	   }
	   	
	   	   //ロード経過表示
	   	   private function onProgress(event:ProgressEvent):void {
	   	   	    var per:Number = Math.round(event.bytesLoaded/event.bytesTotal*100);
	   	   	    _perFld.text = per + " %";
	   	   }
	   	   	    	
	   	   //--------------------------------------
	   	   // PRIVATE & PROTECTED INSTANCE METHODS
	   	   //--------------------------------------
外部イメージファイルをロードする (2)
ImageLoader.as:URLから画像を読込む

	   	   //%フィールド作成
	   	   private function setupPercentField():void {
	   	   	    _perFld = new TextField();
	   	   	    _perFld.x = 20;
	   	   	    _perFld.y = 20;
	   	   	    _perFld.autoSize = TextFieldAutoSize.LEFT;
          var textFormat:TextFormat = new TextFormat();
	   	   	    textFormat.font = "verdana";
          textFormat.size = 10;
          _perFld.defaultTextFormat = textFormat;
	   	   	    addChild(_perFld);
	   	   }
	   }
}
外部イメージファイルをロードする (2)

• 実行結果
外部イメージファイルをロードする (3)
表示の応用 I

• 画像の表示のやりかたを変更してみる
  • XMLファイルにURLを追加して、より多くの画像をロードするように
  • 画像の属性をランダムにする
     • 回転:rotation
     • 座標:(x, y)
外部イメージファイルをロードする (3)
表示の応用 I

• 表示結果
外部イメージファイルをロードする (3)
表示の応用 II

• さらに工夫してみる
  • マウスによるインタラクションを追加
    • 画像をドラッグで移動できるように
      • MOUSE_DOWNのリスナー追加
        • startDrag();
      • MOUSE_UPのリスナー追加
        • stopDrag();


 • TweenMaxを用いてアニメーションを演出
    • ロード時に画面中央からスライドしながら出現
    • MOUSE_DOUNの際に拡大
    • MOUSE_UPでもとの大きさに


 • 写真の周りに枠を追加
 • ドロップシャドウを追加
外部イメージファイルをロードする (3)
表示の応用 II

• 表示結果

Contenu connexe

Similaire à Ssaw08 1014

人狼エージェント作成講座
人狼エージェント作成講座人狼エージェント作成講座
人狼エージェント作成講座kengo009
 
初心者向けJavaScript/HTML5ゲームプログラミング
初心者向けJavaScript/HTML5ゲームプログラミング初心者向けJavaScript/HTML5ゲームプログラミング
初心者向けJavaScript/HTML5ゲームプログラミングKazuki Miyanishi
 
Yapcasia2012 ltthon
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthonturugina
 
メトロスタイルアプリ開発 最初の一歩
メトロスタイルアプリ開発最初の一歩メトロスタイルアプリ開発最初の一歩
メトロスタイルアプリ開発 最初の一歩ShinichiAoyagi
 
Tableau JavaScript API #2 - Real Time Survey Built with Tableau
Tableau JavaScript API #2 - Real Time Survey Built with TableauTableau JavaScript API #2 - Real Time Survey Built with Tableau
Tableau JavaScript API #2 - Real Time Survey Built with TableauKenji Noguchi
 
CakePHP2 Loading (Japanese)
CakePHP2 Loading (Japanese)CakePHP2 Loading (Japanese)
CakePHP2 Loading (Japanese)ichikaway
 
Cognos reportauthoring b3_dynamicpicture
Cognos reportauthoring b3_dynamicpictureCognos reportauthoring b3_dynamicpicture
Cognos reportauthoring b3_dynamicpictureShinsuke Yamamoto
 
Firefox5+HTML5×5
Firefox5+HTML5×5Firefox5+HTML5×5
Firefox5+HTML5×5dynamis
 
Grunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanakaGrunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanakaHisateru Tanaka
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxNobuhiro Sue
 
Firefox Security Features
Firefox Security FeaturesFirefox Security Features
Firefox Security Featuresdynamis
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方linzhixing
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみたwata2ki
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21佐藤 俊太郎
 
Drupal8でのcsvインポート
Drupal8でのcsvインポートDrupal8でのcsvインポート
Drupal8でのcsvインポートTakafumi Oinuma
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...Kousuke Ebihara
 
DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築Yoshihiro Mizoguchi
 

Similaire à Ssaw08 1014 (20)

人狼エージェント作成講座
人狼エージェント作成講座人狼エージェント作成講座
人狼エージェント作成講座
 
初心者向けJavaScript/HTML5ゲームプログラミング
初心者向けJavaScript/HTML5ゲームプログラミング初心者向けJavaScript/HTML5ゲームプログラミング
初心者向けJavaScript/HTML5ゲームプログラミング
 
Yapcasia2012 ltthon
Yapcasia2012 ltthonYapcasia2012 ltthon
Yapcasia2012 ltthon
 
メトロスタイルアプリ開発 最初の一歩
メトロスタイルアプリ開発最初の一歩メトロスタイルアプリ開発最初の一歩
メトロスタイルアプリ開発 最初の一歩
 
HTML5最新動向
HTML5最新動向HTML5最新動向
HTML5最新動向
 
Tableau JavaScript API #2 - Real Time Survey Built with Tableau
Tableau JavaScript API #2 - Real Time Survey Built with TableauTableau JavaScript API #2 - Real Time Survey Built with Tableau
Tableau JavaScript API #2 - Real Time Survey Built with Tableau
 
CakePHP2 Loading (Japanese)
CakePHP2 Loading (Japanese)CakePHP2 Loading (Japanese)
CakePHP2 Loading (Japanese)
 
Cognos reportauthoring b3_dynamicpicture
Cognos reportauthoring b3_dynamicpictureCognos reportauthoring b3_dynamicpicture
Cognos reportauthoring b3_dynamicpicture
 
Flashup 8
Flashup 8Flashup 8
Flashup 8
 
Firefox5+HTML5×5
Firefox5+HTML5×5Firefox5+HTML5×5
Firefox5+HTML5×5
 
Grunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanakaGrunt front-osaka-1-lt-tanaka
Grunt front-osaka-1-lt-tanaka
 
G*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+BetamaxG*workshop 2011/11/22 Geb+Betamax
G*workshop 2011/11/22 Geb+Betamax
 
Firefox Security Features
Firefox Security FeaturesFirefox Security Features
Firefox Security Features
 
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
Alfresco勉強会20120829: やさしいShareダッシュレットの作り方
 
Yocto bspを作ってみた
Yocto bspを作ってみたYocto bspを作ってみた
Yocto bspを作ってみた
 
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
サーバサイドで動的にhtml生成していたりjQueryをガッツし使っている既存プロジェクトにAngularJSを部分的につっこんでみた @jscafe21
 
Drupal8でのcsvインポート
Drupal8でのcsvインポートDrupal8でのcsvインポート
Drupal8でのcsvインポート
 
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
XML と PHP のイケナイ関係 (セキュリティ的な意味で) -Introduction of XXE attack and XML Bomb with...
 
Drag anddropfilereader
Drag anddropfilereaderDrag anddropfilereader
Drag anddropfilereader
 
DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築DockerでAlmaLinux(web, php, pukiwiki)環境構築
DockerでAlmaLinux(web, php, pukiwiki)環境構築
 

Plus de Atsushi Tadokoro

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望Atsushi Tadokoro
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようAtsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Atsushi Tadokoro
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2Atsushi Tadokoro
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Atsushi Tadokoro
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションAtsushi Tadokoro
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Atsushi Tadokoro
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス Atsushi Tadokoro
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Atsushi Tadokoro
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くAtsushi Tadokoro
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリAtsushi Tadokoro
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使うAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Atsushi Tadokoro
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得Atsushi Tadokoro
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングAtsushi Tadokoro
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Atsushi Tadokoro
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するAtsushi Tadokoro
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えAtsushi Tadokoro
 

Plus de Atsushi Tadokoro (20)

「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
「クリエイティブ・ミュージック・コーディング」- オーディオ・ビジュアル作品のための、オープンソースなソフトウエア・フレームワークの現状と展望
 
プログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめようプログラム初級講座 - メディア芸術をはじめよう
プログラム初級講座 - メディア芸術をはじめよう
 
Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2Interactive Music II ProcessingとSuperColliderの連携 -2
Interactive Music II ProcessingとSuperColliderの連携 -2
 
coma Creators session vol.2
coma Creators session vol.2coma Creators session vol.2
coma Creators session vol.2
 
Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1Interactive Music II ProcessingとSuperColliderの連携1
Interactive Music II ProcessingとSuperColliderの連携1
 
Interactive Music II Processingによるアニメーション
Interactive Music II ProcessingによるアニメーションInteractive Music II Processingによるアニメーション
Interactive Music II Processingによるアニメーション
 
Interactive Music II Processing基本
Interactive Music II Processing基本Interactive Music II Processing基本
Interactive Music II Processing基本
 
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
Interactive Music II SuperCollider応用 2 - SuperColliderとPure Dataの連携
 
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス Media Art II openFrameworks  アプリ間の通信とタンジブルなインターフェイス
Media Art II openFrameworks アプリ間の通信とタンジブルなインターフェイス
 
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
Interactive Music II SuperCollider応用 - SuperColliderと OSC (Open Sound Control)
 
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描くiTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
iTamabi 13 ARTSAT API 実践 5 - 衛星の軌道を描く
 
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリメディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
メディア芸術基礎 II 第11回:HTML5実践 表現のための様々なJavaScriptライブラリ
 
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う芸術情報演習デザイン(Web)  第8回: CSSフレームワークを使う
芸術情報演習デザイン(Web) 第8回: CSSフレームワークを使う
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 2
 
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
iTamabi 13 第9回:ARTSAT API 実践 3 ジオコーディングで衛星の位置を取得
 
Tamabi media131118
Tamabi media131118Tamabi media131118
Tamabi media131118
 
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3DプログラミングWebデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
Webデザイン 第10回:HTML5実践 Three.jsで3Dプログラミング
 
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
Interactive Music II SuperCollider応用 JITLib - ライブコーディング 1
 
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画するiTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
iTamabi 13 第8回:ARTSAT API 実践 2 衛星アプリを企画する
 
Media Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替えMedia Art II openFrameworks 複数のシーンの管理・切替え
Media Art II openFrameworks 複数のシーンの管理・切替え
 

Dernier

ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ssusere0a682
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラムKochi Eng Camp
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~Kochi Eng Camp
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024koheioishi1
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料Tokyo Institute of Technology
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料Takayuki Itoh
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationYukiTerazawa
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2Tokyo Institute of Technology
 

Dernier (8)

ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
ゲーム理論 BASIC 演習106 -価格の交渉ゲーム-#ゲーム理論 #gametheory #数学
 
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
世界を変えるクレーンを生み出そう! 高知エンジニアリングキャンプ2024プログラム
 
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
次世代機の製品コンセプトを描く ~未来の機械を創造してみよう~
 
The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024The_Five_Books_Overview_Presentation_2024
The_Five_Books_Overview_Presentation_2024
 
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
2024年度 東京工業大学 工学院 機械系 大学院 修士課程 入試 説明会 資料
 
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
生成AIの回答内容の修正を課題としたレポートについて:お茶の水女子大学「授業・研究における生成系AIの活用事例」での講演資料
 
TokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentationTokyoTechGraduateExaminationPresentation
TokyoTechGraduateExaminationPresentation
 
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
東京工業大学 環境・社会理工学院 建築学系 大学院入学入試・進学説明会2024_v2
 

Ssaw08 1014

  • 1. SSAW08 後期第5回 ActionScript 3.0入門 (2) 外部イメージの読み込み 2008年10月14日
  • 2. 本日の内容 • 外部イメージファイルをロードする • ローカルデータだけでなく、インターネット上のデータのローディング にも対応 • データのロード状況のモニタリング • 外部XMLファイルの読み込み • 読み込むイメージファイルの場所を外部XMLファイルで定義する • 今後Web APIを使用していく際に重要となるテクニック
  • 3. 外部イメージファイルをロードする (1) • 外部イメージファイルをロードするには • Loaderクラスを利用する • SWF ファイルまたはイメージ (JPG、PNG、または GIF) ファイルをロー ドする • ロードされた表示オブジェクトは Loader オブジェクトの子として追加 される • 手順 • LoaderクラスのインスタンスloaderObjを生成 • loaderObj.load(urlReq)でロード
  • 4. 外部イメージファイルをロードする (1) • ロード状況のモニタリング • loaderObj.contentLoaderInfoオブジェクトにリスナーを登録して、 ロード状態をモニタリングすることが可能 • ロードの状態 • Event.COMPLETE • ロードが完了した際にイベント生成 • ProgressEvent.PROGRESS • ロード中の際にイベント生成 • IOErrorEvent.IO_ERROR • ロードにエラーが発生した際にイベント生成
  • 5. 外部イメージファイルをロードする • 外部イメージを読み込むための汎用的なクラスを作成する • ImageLoader.as • URLを引数で読み込んでLoaderを生成 • イベントリスナーを登録 • ロード中は、読み込んだデータをパーセント表示 • ロード終了後は、表示リストに外部イメージのデータを登録
  • 6. 外部イメージファイルをロードする (1) 画像のURL 画像のURL Internet 画像データ 画像データ Flashページ 画像ファイル ※Flashファイル内にファイルのURLを指定 外部イメージのロード (画像URL情報はFlashに内包)
  • 7. 外部イメージファイルをロードする (1) • メインクラスLoadingImage.as • ImageLoaderクラスを呼び出して、表示リストに加える • 複数のImageLoaderを同時に呼び出すことも可能
  • 8. 外部イメージファイルをロードする (1) プロジェクトのクラス構造 ImageLoader - _url:String; - _imgLoader:Loader; LoadImage - _perFld:TextField; 1 * - _width:Number; - _height:Number; + LoadImage() + ImageLoader(url:String, w:Number, h:Number) ・メインクラス - onLoaded(event:Event):void - 張り込む画像の数だけ、 - onProgress(event:ProgressEvent):void ImageLoaderを呼び出す - setupPercentField():void ・Loaderに外部画像を読込むクラス - Loaderを生成 - 指定されたURLの画像をネットから読込 - Loaderに画像データを読込み、ステージに表示
  • 9. 外部イメージファイルをロードする (1) LoadImage.as:メインクラス // // LoadImage.as:メインクラス // package { import flash.display.*; import flash.text.TextField; [SWF(backgroundColor="#cccccc", frameRate="60")] public class LoadImage extends Sprite { //-------------------------------------- // CONSTRUCTOR //-------------------------------------- public function LoadImage() { //ステージ設定 stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; //イメージのURLを配列として定義 var urlArray:Array = [ "http://farm4.static.flickr.com/3098/2921424076_48f37924a2.jpg?v=0", "http://farm4.static.flickr.com/3203/2920571465_050105da5f.jpg?v=0", "http://farm4.static.flickr.com/3214/2921415746_e8376d6f59.jpg?v=0", "http://farm4.static.flickr.com/3070/2921414706_00b1fc438e.jpg?v=0", "http://farm4.static.flickr.com/3209/2920568583_6e5dc15d3a.jpg?v=0",
  • 10. 外部イメージファイルをロードする (1) LoadImage.as:メインクラス "http://farm4.static.flickr.com/3074/2921412810_a0bdc56c6b.jpg?v=0", "http://farm4.static.flickr.com/3101/2921410832_3308c416c0.jpg?v=0", "http://farm4.static.flickr.com/3090/2920562279_7c689e033b.jpg?v=0", "http://farm4.static.flickr.com/3034/2920561829_603508c635.jpg?v=0"]; //それぞれのイメージを読み込み、グリッド状に配置して、表示リストに追加 for(var i:uint = 0; i < urlArray.length; i++){ var img:ImageLoader = new ImageLoader(urlArray[i], 240, 180); img.x = (i % 3) * 240; img.y = int(i / 3) * 180; addChild(img); } } } }
  • 11. 外部イメージファイルをロードする (1) ImageLoader.as:画像をロードするクラス // // ImageLoader.as // LoadImage // package { //表示関連 import flash.display.Sprite; //外部ファイル読み込み関連のパッケージ import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; //テキストフィールド関連パッケージ import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat;
  • 12. 外部イメージファイルをロードする (1) ImageLoader.as:画像をロードするクラス public class ImageLoader extends Sprite { //-------------------------------------- // CONSTRUCTOR //-------------------------------------- public function ImageLoader(url:String, w:Number, h:Number) { _url = url; //画像URL _width = w; //画像の表示幅 _height = h; //画像の表示高さ setupPercentField(); //%表示フィールド表示 _imgLoader = new Loader(); //Loaderを生成 addChild(_imgLoader); //Loaderをステージに追加 //イベントリスナー定義 _imgLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); //読みこみ中 _imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded); //読 みこみ完了 //画像の読み込み開始 var urlReq:URLRequest=new URLRequest(_url); _imgLoader.load(urlReq); }
  • 13. 外部イメージファイルをロードする (1) ImageLoader.as:画像をロードするクラス //-------------------------------------- // PRIVATE VARIABLES //-------------------------------------- private var _url:String; private var _imgLoader:Loader; private var _perFld:TextField; private var _width:Number; private var _height:Number; //-------------------------------------- // EVENT HANDLERS //-------------------------------------- //読み込み完了 private function onLoaded(event:Event):void { removeChild(_perFld); // %表示を削除 _perFld = null; _imgLoader.width = _width; _imgLoader.height = _height; }
  • 14. 外部イメージファイルをロードする (1) ImageLoader.as:画像をロードするクラス //ロード経過表示 private function onProgress(event:ProgressEvent):void { var per:Number = Math.round(event.bytesLoaded/event.bytesTotal*100); _perFld.text = per + " %"; } //-------------------------------------- // PRIVATE & PROTECTED INSTANCE METHODS //-------------------------------------- //%フィールド作成 private function setupPercentField():void { _perFld = new TextField(); _perFld.x = 10; _perFld.y = 10; _perFld.autoSize = TextFieldAutoSize.LEFT; var textFormat:TextFormat = new TextFormat(); textFormat.font = "Verdana"; textFormat.size = 12; _perFld.defaultTextFormat = textFormat; addChild(_perFld); } } }
  • 16. 外部イメージファイルをロードする (2) 外部XMLファイルの読み込み • 現状のソース • 読み込む画像ファイルのURLをコード内部に記述している • 読み込む画像を変更する度に再コンパイルをする必要あり • めんどう • 画像ファイルのURLは別ファイルで定義したい • XML形式のファイルを利用すると便利 • XML形式の利点 • 構造化されたデータ形式 • AS3で扱いやすい • 現在多くのWebAPIで標準的に用いられている
  • 17. 外部イメージファイルをロードする (2) 外部XMLファイルの読み込み • メインクラスを変更 • XMLファイルを解析して、URLを抽出 • 抽出したURLからイメージを読み込む
  • 18. 外部イメージファイルをロードする (2) 外部XMLファイルの読み込み • 全体の設計 • XMLファイルを読み込み ↓ • XMLファイルの読み込み完了を検知 ↓ • XMLファイルからURLを抽出 ↓ • 抽出したURLからローダ生成 ↓ • 画像読み込み ↓ • 読み込みが完了した画像から表示
  • 19. 外部イメージファイルをロードする (2) 外部XMLファイルの読み込み • XMLファイルを読み込むクラスを作成する • XMLloader.as • URLで指定されたXMLファイルをロードする • ロードが完了したら、完了したことを通知するイベントを発生 • EventDispacherを利用する
  • 20. 外部イメージファイルをロードする (2) 外部XMLファイルの読み込み XMLファイル (※画像のURLを定義) 画像のURL 画像のURL 画像のURL Internet 画像データ 画像データ Flashページ 画像ファイル 外部イメージのロード (画像URL情報をXMLで定義)
  • 21. 外部イメージファイルをロードする (1) プロジェクトのクラス構造 XMLLoader LoadImage - _xmlLoader:URLLoader; 1 1 - _my_xml:XML; + XMLLoader(url:String) + LoadImage() + getXML():XML ・メインクラス - onXMLloaded(event:Event):void - 張り込む画像の数だけ、 ImageLoaderを呼び出す ・XMLをロード - 指定されたXMLファイルをロード - メインクラスにロード完了を通知 - ロードされたXMLファイルをメインクラスに返す ImageLoader - _url:String; - _imgLoader:Loader; - _perFld:TextField; * - _width:Number; - _height:Number; + ImageLoader(url:String, w:Number, h:Number) - onLoaded(event:Event):void - onProgress(event:ProgressEvent):void - setupPercentField():void ・Loaderに外部画像を読込むクラス - Loaderを生成 - 指定されたURLの画像をネットから読込 - Loaderに画像データを読込み、ステージに表示
  • 22. 外部イメージファイルをロードする (2) photo.xml:URLを指定したXMLファイル <?xml version="1.0" encoding="UTF-8"?> <data> <photoURL>http://farm4.static.flickr.com/3098/2921424076_48f37924a2.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3203/2920571465_050105da5f.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3214/2921415746_e8376d6f59.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3070/2921414706_00b1fc438e.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3209/2920568583_6e5dc15d3a.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3074/2921412810_a0bdc56c6b.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3101/2921410832_3308c416c0.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3090/2920562279_7c689e033b.jpg</photoURL> <photoURL>http://farm4.static.flickr.com/3034/2920561829_603508c635.jpg</photoURL> </data>
  • 23. 外部イメージファイルをロードする (2) LoadImage.as:メインクラス // // LoadImage // // Created by Atsushi Tadokoro on 08/10/13. // Copyright 2008 yoppa.org. All rights reserved. // package { import flash.display.*; import flash.events.Event; [SWF(backgroundColor="#CCCCCC", frameRate="60")] public class LoadImage extends Sprite { //-------------------------------------- // CLASS CONSTANTS //-------------------------------------- //-------------------------------------- // CONSTRUCTOR //-------------------------------------- public function LoadImage() { //Stage設定
  • 24. 外部イメージファイルをロードする (2) LoadImage.as:メインクラス stage.align = StageAlign.TOP_LEFT; stage.scaleMode = StageScaleMode.NO_SCALE; //XMLファイルを読み込む _xmlLoader = new XMLLoader("./xml/photo.xml"); //イベントリスナーの登録 _xmlLoader.addEventListener(XMLLoader.LOAD_COMPLETE, onXMLloaded); } //-------------------------------------- // PRIVATE VARIABLES //-------------------------------------- private var _xmlLoader:XMLLoader; private var _photoXml:XML; private var _photoWidth:Number = 240; private var _photoHeight:Number = 180; //-------------------------------------- // GETTER/SETTERS //-------------------------------------- //-------------------------------------- // PUBLIC METHODS //--------------------------------------
  • 25. 外部イメージファイルをロードする (2) LoadImage.as:メインクラス //-------------------------------------- // EVENT HANDLERS //-------------------------------------- //XMLロード完了後実行 private function onXMLloaded(event:Event):void { //ロードしたXMLを取得 _photoXml = _xmlLoader.getXML(); //XMLに記述されたURLの数だけ繰り返し var i:int = 0; for each (var url:String in _photoXml.photoURL){ //イメージをロードしてグリッド状に配置 var img:ImageLoader = new ImageLoader(url, _photoWidth, _photoHeight); img.x = (i%3)*_photoWidth; img.y = int(i/3)*_photoHeight; addChild(img); i++; } } } }
  • 26. 外部イメージファイルをロードする (2) XMLLoader.as:XMLを読込みメインクラスに通知 // // XMLLoader.as // LoadImage // // Created by Atsushi Tadokoro on 08/10/13. // Copyright 2008 yoppa.org. All rights reserved. // package { import flash.events.EventDispatcher; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.system.System; import flash.events.Event; public class XMLLoader extends EventDispatcher { //-------------------------------------- // CLASS CONSTANTS //-------------------------------------- public static const LOAD_COMPLETE:String = "load_complete";
  • 27. 外部イメージファイルをロードする (2) XMLLoader.as:XMLを読込みメインクラスに通知 //-------------------------------------- // CONSTRUCTOR //-------------------------------------- public function XMLLoader(url:String) { //URLLoader作成 _xmlLoader = new URLLoader(); _xmlLoader.dataFormat = URLLoaderDataFormat.TEXT; _xmlLoader.addEventListener(Event.COMPLETE, onXMLloaded); //URL var urlReq:URLRequest = new URLRequest(url); //読み込み開始 _xmlLoader.load(urlReq); } //-------------------------------------- // PRIVATE VARIABLES //-------------------------------------- private var _xmlLoader:URLLoader; private var _my_xml:XML; //-------------------------------------- // GETTER/SETTERS //--------------------------------------
  • 28. 外部イメージファイルをロードする (2) XMLLoader.as:XMLを読込みメインクラスに通知 //-------------------------------------- // PUBLIC METHODS //-------------------------------------- //XMLオブジェクトを返す(他のクラスからのアクセスに対応) public function getXML():XML{ return _my_xml; } //-------------------------------------- // EVENT HANDLERS //-------------------------------------- //読み込み完了 private function onXMLloaded(event:Event):void { try { //XMLオブジェクトに変換する _my_xml = new XML(_xmlLoader.data); //カスタムイベントを配信する dispatchEvent(new Event(LOAD_COMPLETE)); } catch (err:TypeError) { trace(err.message); } }
  • 29. 外部イメージファイルをロードする (2) XMLLoader.as:XMLを読込みメインクラスに通知 //-------------------------------------- // PRIVATE & PROTECTED INSTANCE METHODS //-------------------------------------- } }
  • 30. 外部イメージファイルをロードする (2) ImageLoader.as:URLから画像を読込む // // ImageLoader.as // LoadImage // package { //表示関連 import flash.display.Sprite; //外部ファイル読み込み関連のパッケージ import flash.display.Loader; import flash.display.LoaderInfo; import flash.net.URLRequest; import flash.events.Event; import flash.events.ProgressEvent; import flash.events.IOErrorEvent; //テキストフィールド関連パッケージ import flash.text.TextField; import flash.text.TextFieldAutoSize; import flash.text.TextFormat; public class ImageLoader extends Sprite {
  • 31. 外部イメージファイルをロードする (2) ImageLoader.as:URLから画像を読込む //-------------------------------------- // CLASS CONSTANTS //-------------------------------------- //-------------------------------------- // CONSTRUCTOR //-------------------------------------- public function ImageLoader(url:String, w:Number, h:Number) { //パラメータを格納 _url = url; _width = w; _height = h; //%表示フィールド表示 setupPercentField(); //loader作成 _imgLoader = new Loader(); addChild(_imgLoader); //イベントリスナー定義 _imgLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); //読みこみ中
  • 32. 外部イメージファイルをロードする (2) ImageLoader.as:URLから画像を読込む //読みこみ完了 _imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE,onLoaded); //読み込み開始 var urlReq:URLRequest=new URLRequest(_url); _imgLoader.load(urlReq); } //-------------------------------------- // PRIVATE VARIABLES //-------------------------------------- private var _url:String; private var _imgLoader:Loader; private var _perFld:TextField; private var _width:Number; private var _height:Number; //-------------------------------------- // GETTER/SETTERS //-------------------------------------- //-------------------------------------- // PUBLIC METHODS //--------------------------------------
  • 33. 外部イメージファイルをロードする (2) ImageLoader.as:URLから画像を読込む //-------------------------------------- // EVENT HANDLERS //-------------------------------------- //読み込み完了 private function onLoaded(event:Event):void { //プログレスフィールド削除 removeChild(_perFld); _perFld = null; _imgLoader.width = _width; _imgLoader.height = _height; } //ロード経過表示 private function onProgress(event:ProgressEvent):void { var per:Number = Math.round(event.bytesLoaded/event.bytesTotal*100); _perFld.text = per + " %"; } //-------------------------------------- // PRIVATE & PROTECTED INSTANCE METHODS //--------------------------------------
  • 34. 外部イメージファイルをロードする (2) ImageLoader.as:URLから画像を読込む //%フィールド作成 private function setupPercentField():void { _perFld = new TextField(); _perFld.x = 20; _perFld.y = 20; _perFld.autoSize = TextFieldAutoSize.LEFT; var textFormat:TextFormat = new TextFormat(); textFormat.font = "verdana"; textFormat.size = 10; _perFld.defaultTextFormat = textFormat; addChild(_perFld); } } }
  • 36. 外部イメージファイルをロードする (3) 表示の応用 I • 画像の表示のやりかたを変更してみる • XMLファイルにURLを追加して、より多くの画像をロードするように • 画像の属性をランダムにする • 回転:rotation • 座標:(x, y)
  • 38. 外部イメージファイルをロードする (3) 表示の応用 II • さらに工夫してみる • マウスによるインタラクションを追加 • 画像をドラッグで移動できるように • MOUSE_DOWNのリスナー追加 • startDrag(); • MOUSE_UPのリスナー追加 • stopDrag(); • TweenMaxを用いてアニメーションを演出 • ロード時に画面中央からスライドしながら出現 • MOUSE_DOUNの際に拡大 • MOUSE_UPでもとの大きさに • 写真の周りに枠を追加 • ドロップシャドウを追加