« 2007年10月 | メイン | 2008年06月 »

2007年11月05日

●Tweener.addTweenでAS3とAS2のパラメーターが微妙に違う。

お恥ずかしい話なんですけど・・・。

最近はAS2とAS3の開発を行ったりきたりしてるんですね。

で、AS2で使っている独自ライブラリもAS3で書き換えなくちゃいけない状況になっています。

いまんところAS3の本格開発はないのでのらりくらり凌いでますが。

ただ、その中でもモーション系はFuseKitとかTweenerとかが充実してるのでケースバイケースで使うおうかなぁと思っているわけです。100%自分のを使ってたけど、違うのも試してみようと。

まあそういう心境の変化があったわけです。

で、AS3でTweener使ってたからAS2でも使おうとしたんですよ。

そしたらすんごい些細なことで1時間くらいハマった!

極小に書いたサンプルですら動かないわけですよ。AS3でうまく行ってたのにどうしたももんかって感じ。

■まず、AS3の場合。

import caurina.transitions.Tweener;
Tweener.addTween( mc , { alpha:0, transition:"liner" } ); );

■つづいて、AS2の場合。

import caurina.transitions.Tweener;
Tweener.addTween( mc , { _alpha:0, transition:"liner" } ); );

AS2のサンプルがなかなかなくて、違いに気づかなかったのは僕です。

賢明な読者の方はわかると思いますが、パラメータが「alpha」と「_alpha」で違うんです。要はMovieClipのプロパティに則したものなので、AS3では「_」がいらないんですね。

これで、結構はまりました。アホです。

2007年11月03日

●Adobe Max 2007 行ってきました。

Adobe Max 2007 行ってきました。

1日目は撮影許可があったので、かなりふんだんに写真補足があります。はじめて、写真でメモしたんですがこの甘美な方法から逃れられなくなるかも・・・。

■1日目

基調講演→昼

ニコニコ動画とFlash

アドビのオープンソース戦略→Flash Lite 3.0で広がるモバイルコンテンツの世界

アドビのDRM戦略とエコシステム

スペシャルイベント:Technology Sneak Peek

■2日目

2日目は1日目の疲れからとても朝から出ることはできず。しかたなく、通常通りメモしまくった。確かに、自分の言葉でピックアップするので、それはそれでいい感じ。でも、やっぱ写真メモはすごいなー。ただ、アップするのが大変。

RIAシステム・デザイン概論:エンジニアとデザイナの共存共栄/脱3K指南

SQLiteを使ったAIRのオフライン運用術

Flashで創るコラージュアニメーション・Flash Media Server 3

●Adobe Max 2007 11/2 (3)

詳細記事の扱い上、セッション順番が逆です。

■Flashで創るコラージュアニメーション (木村タカヒロ氏)

 - キムスネーク
  - http://www.kimsnake.com/
 
 - 著名なイラストレータさんがFlashを使いこなしていく歴史
 
 - キムスネーク苦労話
  - 一人で作りこんでたら何度か倒れた
  - 手伝ってもらう際になかなか人手不足・・・。
  - 世界観とかセンスが一致すればFlashを使って比較的簡単に習得できる。
  - 10年のFlash使いだから熟練CGクリエイターだからすぐに世界観を出せるわけじゃない。

■Flash Media Server 3 - High quality, High Performance, High Security   (アドビ:デイビッド デヴィッサー)

英語セッションながら、補助資料もなくてついていけない・・・。がんばる。

以下、レジュメ。

続きを読む "Adobe Max 2007 11/2 (3)"

●Adobe Max 2007 11/2 (2)

■SQLiteを使ったAIRのオフライン運用術 (関崇匡氏)

SQLiteの使用方法もさることながら、ByteArrayでSQL突っ込んじゃうASの型を保護しちゃうのとか、ようやくaddEventListenerの第5引数のtrueの意味が分かったとか、ネットワークのコネクションをチェックできるとか、今後AIR制作には効きそうなものがちりばめられてて素敵でした。

以下レジュメ。

続きを読む "Adobe Max 2007 11/2 (2)"

●Adobe Max 2007 11/2 (1)

■今日の撮影許可

・今日はいけなかった~。
・午前は新橋でくつろぐことにした。

■RIAシステム・デザイン概論:エンジニアとデザイナの共存共栄/脱3K指南 (三井英樹氏)

・ペーパープロトタイピング
- クライアントも巻き込む!!

・PDFのプレゼンが素敵だった。拡大してもキレイ見える。

・先見の明やピンとくる技術も、エンジニアさんは普及が安定してからじゃないとキャッチしない。注意。

・ClientServerなサービスもWebなサービスもRIAにいくと思うよ。

・個人はエンドユーザーを見据えつつ研鑽を積もう。

・どんなサービスもワンクリック(最後の一押し」が大変!がんばろう。

・デザインとは「操作性」である。

●Adobe Max 2007 11/1 (5)

■スペシャルイベント:Technology Sneak Peek

未公開製品あるいはテクノロジー / サービスをご紹介。
とりあえず、いつ公開されるかってのは未定なもの。
α版以下ってところなので期待しすぎるなってとこはガチ。

ともあれAstroは面白かった。

続きを読む "Adobe Max 2007 11/1 (5)"

●Adobe Max 2007 11/1 (4)

■アドビのDRM戦略とエコシステム (アドビ:ジョナサン ハーバック)

・とにかくこれからadobeはがんばるぜ。
- データ保護
- セキュリティ保護
- 著作権保護

・LiveCycleやFMS3でがんばるぜ。

・とりあえずはPDFやMSDocとかのデモ。
- パスワード入力で保護する感じ。
- 印刷回数保護やら課金やら。

続きを読む "Adobe Max 2007 11/1 (4)"

●Adobe Max 2007 11/1 (3)

■アドビのオープンソース戦略 (アドビ:スティーブン ハインツ)

・思ったより夢を語らずに姿勢表明。
・ともあれレアな資料を得たかも。俺的に。
・Tamarinが可能性を感じる。AVMをMozillaに提供ってやつ。
・早く終わり感。残り20分から質問。

■Flash Lite 3.0で広がるモバイルコンテンツの世界 (石川修一氏)

・放送大学的語り口。淡々と面白い。
・まず、1.1/1.0の説明とともにmingの紹介も!ただがんばれば作れるというニュアンス。大変だよね。
・続いて2.0。AS2で書けるから色々出来る。
・さて、3.0。とりあえず3.0としての仕様は伝えるけどキャリアや機種でかわるとのこと。
・FLV読み込みがスゴい。ローカルセキュリティが面倒くさい。
・いまやるには2つの追加アップデートが必要。
- flashは日本語サイトにもある。
- DeviceCentralは英語サイトにあるよう。マルチリンガルだから大丈夫。

続きを読む "Adobe Max 2007 11/1 (3)"

●Adobe Max 2007 11/1 (2)

■ニコニコ動画とFlash (戀塚昭彦氏)

最初は概要+コンセプト。半分から面白かった。

#includeで1フレームスクリプトでコードが記述されてるところが驚き。
こういったサービスでもクラス化しないこともあるんだね。

続きを読む "Adobe Max 2007 11/1 (2)"

●Adobe Max 2007 11/1 (1)

■今日の撮影許可
・無事ゲット。
・眠い。

■昼
すしや。カニいくら丼。

↓以下写真

続きを読む "Adobe Max 2007 11/1 (1)"
2007年11月01日

●[SWX] SWXで返したデータを静的にコピー

SWXで返したデータを静的にコピーやってみました。案外スッキリ出来ました。fopenがURLを叩けるので帰ってきたものを書き写すだけでした。

より堅くやるなら入力エラーチェックが必要だと思いますが、そう書くと長くなるので今回はコアなコードだけのっけておきます。僕のスキルではPHPでの完璧なエラーチェックはそう簡単には出来ないでしょうし。

以下がソースコードです。


<?php

// 初期設定 SWXゲートウェイ
define( 'SWX_GATEWAY_URL' , 'http://www.yourserver.jp/swx/swx.php' );

// 初期設定 許可ドメイン
// 本来実行ドメインが望ましいがローカルでのテストのときに読めなくなる。
// デバッグ中は「*」でもいいかも。
define( 'SWX_ALLOW_DOMAIN' , '*' );

// 初期設定 デバックモード
define( 'SWX_DEBUG' , 'true' );

// 初期設定 コピーするディレクトリ
// パーミッションを707で開放する必要がある。
define( 'SWX_COPY_DIR' , 'copy' );

// SWX URL
$swx_url = "";
$swx_url .= SWX_GATEWAY_URL . '?';
$swx_url .= "url=" . SWX_ALLOW_DOMAIN;
$swx_url .= "&serviceClass=" . $_GET['serviceClass'];
$swx_url .= "&method=" . $_GET['method'];
$swx_url .= "&args=" . $_GET['args'];
$swx_url .= "&debug=" . SWX_DEBUG;

// コピー URL
//
// serviceClassがSimpleでmethodがechoDataなら
//「Simple_echoData.swf」生成される。
//
// 初期設定SWX_COPY_DIRの影響を受けるので、
// 正確にはcopy/Simple_echoData.swfに生成。
$copy_url = SWX_COPY_DIR . '/' . $_GET['serviceClass'] . '_' . $_GET['method'] . '.swf';

// SWX 読み込み
$result = fopen( $swx_url , 'r' );

// SWX 読み込み
$copy_fp = fopen( $copy_url , 'w' );

// SWXが帰ってきたらコピー
if ($result) {

while( !feof($result) ) {
$buffer = fgets($result, 4096);
fwrite( $copy_fp , $buffer );
}

fclose($result);
}

// Close
fclose( $copy_fp );

// 簡単な結果を返す
echo 'swx_url=' . $swx_url . '©_url=' . $copy_url

?>


●[SWX] XMLを読み込んでFlash変数に変換するソース

さて、PHPソースコードは以下の通りです。

最初のほうのini_setあたりは先日言及していたロリポップサーバー対策のものです。

コメントアウトしてあるので、機能はしません。

他のサーバーではどうなるかは保障しませんが、
私の乱暴なコードでもよろしければ参考になれば幸いです。


<?php
    
  class XML
  {
    
    function get($url){
      
      // ロリポップサーバー対策
      // **********にご利用の設定のIDを入れる
      /*
      ini_set(
        "include_path",
        "/home/sites/lolipop.jp/users/lolipop.jp-**********/web/lib/php/".PATH_SEPARATOR.ini_get("include_path")
      );
      */
      
      // Unserializerライブラリ読み込み
      require_once("XML/Unserializer.php");
      
      // 返り値になる $ret → 最初は空
      $ret = "";
      
      // ファイルの存在チェック
      if( file_exists($url) ){
      
        $param = array(
          'complexType' => "object",
        );
        
        $xml = new XML_Unserializer($param);
        
        $xml->unserialize($url, TRUE);
        
        // 正常であればXMLが変換されたオブジェクトが返る
        $ret = $xml->getUnserializedData();
        
      } else {
        // エラーの場合
        $ret = "ERROR:FileNotFound( $url )";
      }
      
      return $ret;
      
    }
    
  }

?>


一応、ソースコードもアップしておきます。

中身のXML.phpをswxをインストールしたフォルダからみて
services/XML.phpとなるように入れてください。

swx_xml_parse_0.1.zip


これでswx.phpからserviceClass「XML」、method「get」に対して、argsに読みたいXMLのURLを入れてやると、既にFlashに扱いやすい変数の連なりで帰ってくるはずです。

Flashからの送り方はこんな感じです。

1フレームに張ればとりあえずテストできます。


// 送り先
var gateway = "http://www.yourserver.jp/swx/swx.php";

// サービスクラス名
var serviceClass = "XML";

// メソッド名
var method = "get";

// 引数
// このexample.xmlはservices/example.xmlとしてある。
var args = "['example.xml']";

// デバックモード
var debug = true;

// AllowDomain
var url = "*";

// MovieClipLoader
var loader:MovieClipLoader = new MovieClipLoader();

// 空クリップの生成
_root.createEmptyMovieClip( "core" , 1000 );

// GET用のURL生成
var complate_url = gateway + "?";

// つらつらと、つなげていく
complate_url += "url=" + url;
complate_url += "&serviceClass=" + serviceClass;
complate_url += "&method=" + method;
complate_url += "&args=" + args;
complate_url += "&debug=" + debug;

trace( "送信URL:" + complate_url );

// 読み込み開始
loader.loadClip( complate_url , _root.core );