OSXのFileReference

FlashのFileReferenceでのファイルアップロードはFlashPlayerから直接ファイルがアップロードされるのだけど、WindowsだとIEからリクエストされてるのと同じ感じになって(おそらくWinInet APIをつかっているからだと思う)、アクセス先がBasic認証とかかかっていてもIEの認証がとおっていればちゃんとファイルアップロードできる。

でも、OSXの場合は完全にFlashPlayerが独立しているらしく、Basic認証がかかっているとファイルアップロードできないようだ><

それをしらなかったのでykskに無駄に苦労をさせてしまった。もうしわけない!

とりあえずIP認証で代用した。そんな罠があるとはな。。

by typester / at 2007-10-26T03:32:00 / flash / Comment

AS3でのフルスクリーンモード

最小のサンプル。

package {
    import flash.display.Sprite;
    import flash.display.StageDisplayState;
    import flash.events.MouseEvent;
    import flash.events.FullScreenEvent;

    public class FullScreeeeeen extends Sprite {
        public function FullScreeeeeen() {
            stage.addEventListener(MouseEvent.CLICK, clickHandler);
            stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenHandler);
        }

        private function clickHandler(event:MouseEvent):void {
            if (stage.displayState == StageDisplayState.NORMAL) {
                stage.displayState = StageDisplayState.FULL_SCREEN;
            }
        }

        private function fullScreenHandler(event:FullScreenEvent):void {
            if (event.fullScreen) {
                trace("enter fullScreen mode");
            }
            else {
                trace("leave fullScreen mode");
            }
        }
    }
}

これだけ。あとは addParam("allowFullScreen", true) (SWFObject書式) すれば使える。

今の Flex2 SDK だったら追加のインストールファイルは何も必要ない模様。

by typester / at 2007-03-07T01:24:00 / flash · as3 / Comment

AS3のテスト

Adobe - Developer Center : Unit testing and Test Driven Development (TDD) for Flex and ActionScript 3.0

これ試してみた。

Flex Builder 2 がいるとか書いてあるけど、Flex2 SDK でも使えた。

この記事の例のをコンパイルするには

mxmlc -include-libraries=../flexunit/bin/flexunit.swc main.mxml

こんな感じでいいよう。

-include-libraries の代わりに -source-path で as ライブラリの位置指定してもいけるけどコンパイル時間がすげー長くなってしまう。

てか、swc 使っても長いんですけど。fcshつかった二回目以降のコンパイルでもおっせぇのでFlexって大変だなぁとか思ったり。

このテストアプリはFlexで作られているけど、テストは普通のAS3クラスに対して行えるので、まぁ一応使えるかなぁと言う印象。

作ってるアプリディレクトリに test.mxml、Test.as を置く感じになるかなぁ。

めんどいなー。誰かがasだけでテストクラス書いてくれるのを待とう。

by typester / at 2007-02-28T10:00:00 / flash · as3 / Comment

XMLSocket - POE

AS3からSocketクラスができたけど、それでも依然としてテキストベースの通信ではXMLSocketのほうが楽なのでAS3ベースでもXMLSocket使ってる。

でも通信の区切りがNULL文字だったりとか、癖があるんで、なんこかPoCoサーバー作ってみて、うまくラッピングするモジュール作るべきだなと考えてる。

たとえば以下のような。

POE::Filter::XMLSocket

NULL文字で区切る入出力フィルタ。

POE::Component::Server::TCP::XMLSocket

AS3からサポートされているTCP通信でのcrossdomain.xmlの返答機能を組み込んだComponent::Server::TCPのサブクラス。

などなど。

今の仕事が終わったらちゃんと考えよう。

by typester / at 2007-02-25T21:11:00 / perl · flash / Comment

FlashのログをFirebugに出す方法 (Unknown Quality)

それまったく無名関数使う意味ない><

ExternalInterface.call("console.log", "hoge");
by typester / at 2007-02-15T05:01:00 / flash / Comment

MochiKitをAS3で

package MochiKit { public class Base { public static function bind(f, obj, ...args) { return function() { return f.apply(obj, args.concat(arguments)) }; }

        public static function update(self, ...args) {
            if (self === null) {
                self = {};
            }
            for (var i = 1; i < args.length; i++) {
                var o = args[i];
                if (typeof(o) != "undefined" && o !== null) {
                    for (var k in o) {
                        self[k] = o[k];
                    }
                }
            }
            return self;
        }
    }
}

bindとupdateだけだけどw

なんかAS3は_globalなくなってグローバル関数上書きどうやるかわかんねーし、ビルドインクラスにメソッド追加する方法もよくわかんないのでこんなのかいてやってみる試み。

使うときは import MochiKit.Base; したらあとは

var m = MochiKit.Base;
m.bind(...)

とかもてきったーにはおなじみの使い方できる。

誰か暇な人が全移植してくれはしないだろうか。

by typester / at 2007-02-11T17:47:00 / flash / Comment

width="0" height="0" な Flash だとネット接続できない @ Linux Flash Player 9

これずっとわかんなかったんだけど、今日やっと原因を発見した。

なんだそういうことだったのね。MTASCのバグかPlayerのバグか何かかと思っていて放置してた。

MTASC上でのLoadVars, XMLSocket、Flex2 Builder上でのURLLoaderでうごかないの確認。

ちなみにWindowsやOSXだと問題ない。

Flashタグでは1pxなどと適当に指定しておいて、CSSでそれをくくっているdivを0pxに指定したらOKっぽい。

by typester / at 2007-02-09T17:55:00 / flash / Comment

Flash Player Detection Kit がひどいので改造

インストールされているFlashプレイヤーのバージョンを調べるためにadobeからFlash Player Detection Kitというものが出てるのだが、これのjsの部分がひどいのでいじった。

Flash.js

var付け忘れてる変数にちまちまvarつけたり、関数エクスポートまくりなのを全部隠蔽したりとか。あと使わない部分はごっそり削除。

このjsでは、Flash.VERSION でプレイヤーのバージョンがとれ、Flash.require() でプレイヤーのバージョンをチェックするって感じにしてある。

前者は単純に文字列が入っててで、後者のrequire関数は

if (Flash.require(8,0,0)) {
    // プレイヤー8以上入ってる!
}

みたいに使う。

SWFObjectもこの中に突っ込むといいかなとか思ったけど今は必要ではないのでいれていない。

by typester / at 2007-01-29T18:57:00 / flash · javascript / Comment

ぐぐったら速攻あった。deconceptにw

deconcept > RegExp in Flash 8 using ExternalInterface

これ無名関数で書いちゃえばjsいらねーのにな。

by typester / at 2007-01-25T16:36:00 / flash · javascript / Comment

js無名関数 with ExternalInterface

弊社フラッシュチームからは常識じゃん?的なことを言われましたが、FlashのExternalInterfaceに無名関数を使うというテクはなかなか使えるなぁ。

UserAgent取得

var ua = ExternalInterface.call("function() { return navigator.userAgent }");

JSつかってJSONパースさせてオブジェクトを得る

var json   = '{foo:"bar"}';
var object = ExternalInterface.call("function(json) { return eval('('+json+')') }", json);

などちょっとしたことやるならjsファイルでなんかやらなくてもas内だけで完結できる。

ちょっとがんばればasクラスだけでjsの正規表現つかうラッパークラスとかもできそうだけど、もうありそうかな。

by typester / at 2007-01-25T16:11:00 / flash · javascript / Comment

« Prev 1 2

(Page 1 of 2)