画像の特定の色を変える(swf9以上限定)

アシアル株式会社さまのhttp://blog.asial.co.jp/641のFlexでのブログ記事を参考にOpenLaszloで書き直してみました。 元記事はActionScript3.0で書かれているので、OpenLaszloではswf9以上でコンパイル必要です。

スクリプト全開である意味OpenLaszloらしさのないコードですが(^^;)、ActionScriptコードを元にしたこういう応用の仕方もあるという例です。

この内容を表示するためには Adobe Flash Plugin が必要です。
(OpenLaszlo4.6.1/swf9)

<?xml version="1.0" encoding="UTF-8"?>
<canvas proxied="false" bgcolor="0xeeeeee"> 
  <class name="replace">
    <attribute name="url" type="string"/>
    <passthrough>
      import flash.display.Loader;
      import flash.display.MovieClip;
      import flash.geom.Point;
      import flash.net.URLRequest;
      import flash.events.Event;
      import flash.events.MouseEvent;
    </passthrough>
    <handler name="oninit">
      var bitmap; 
      var originBitmapData; 
      var oldColor;
      var loader = new Loader();
      var urlReq = new URLRequest(this.url);
      var vr = this.getMCRef();
      function finished_loading(event){
        var loader = event.currentTarget.loader;
        this.bitmap = loader.content;
        this.originBitmapData = this.bitmap.bitmapData.clone();
      }
      function initHandler(event){
        vr = MovieClip(loader.content);
      }
      loader.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove);
      loader.contentLoaderInfo.addEventListener(flash.events.Event.COMPLETE, finished_loading);
      loader.contentLoaderInfo.addEventListener(Event.INIT, initHandler);
      loader.load(urlReq);
      vr.addChild(loader);
      function onMouseMove(event) {
        var color = this.originBitmapData.getPixel(event.localX, event.localY);
        if (color == this.oldColor) return;
        var bitmapData = this.originBitmapData.clone();
        var newColor = 0xFFFFFF66;
        bitmapData.threshold(this.originBitmapData, this.originBitmapData.rect, new Point(0,0), '==', color, newColor, 0xFFFFFF);
        this.bitmap.bitmapData = bitmapData;
        this.oldColor = color;
      }
    </handler>
  </class>
  <replace url="image1.png"/>
</canvas>

※アシアル株式会社松田さまにはソース、画像の改変と掲載の許可をいただいております。(2009/12/4)

replacecolor.txt · 最終更新: 2009/12/04 15:57 by ason
Copyright © 2008~ずっと ason(minamotonoason@gmail.com)

chuumap 中小企業ツイッターマップ 製造、加工、卸などB2B主体の個人事業者、中小企業のツイッターを、グーグルマップの住所の位置に正確に表示。
tentwi 店舗でツイート 飲食店、販売店など、一般消費者向けの店舗を構えるお店ツイッターを、グーグルマップの住所の位置に正確に表示。
廃句ったー あなたのツイッターの最近のツイートから廃句もとい俳句を生成。
みかけったー 超人気!あなたのツイッターの最近のツイートからみかけの年齢と性別を診断。
キキキーったー 最近のツイートからキーの使用回数をしらべます。
SLOTTER(すろったー) あなたのツイッターのタイムラインのアイコンでスロット。FLASHゲーム。
MultiLangTweet 一度に48ヶ国語に翻訳してツイート。
英訳ったー 英訳または日本語訳してツイート。
バンドメンバー募集サイト シンプルなバンドメンバー募集サイト。
CMS総合デモサイト 有名オープンソースCMS、EC、SNS、Wikiを一度に全部体験できる総合デモサイト
ビズロック BizRock(ビズロック)~音楽ライブでプレゼン!情熱型ビジネス交流会