In case Flash no longer exists; a copy of this site is included in the Flashpoint archive's "ultimate" collection.

Dead Code Preservation :: Archived AS3 works from wonderfl.net

forked from: Green Icon Generator

Twitterで緑色アイコンがはやっていたので
画像を緑色にして保存するツールを作ってみました
@author Yasu

zahirです。
サイズが大きい画像だと全体が見えなくて残念だったのでリサイズするようにしてみました。
/**
 * Copyright zahir ( http://wonderfl.net/user/zahir )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/4AM9
 */

// forked from clockmaker's Green Icon Generator
package {
    import flash.display.*;
    import flash.net.*;
    import jp.progression.casts.*;
    import mx.graphics.codec.*;
    import caurina.transitions.Tweener;
    import caurina.transitions.properties.ColorShortcuts;
    ColorShortcuts.init();
    
    /**
     * Twitterで緑色アイコンがはやっていたので
     * 画像を緑色にして保存するツールを作ってみました
     * @author Yasu
     */
    /*
     *zahirです。
     *サイズが大きい画像だと全体が見えなくて残念だったのでリサイズするようにしてみました。
    */
    public class Main extends CastDocument {
        
        public function Main():void {
            var fr :FileReference = new FileReference();
            var wrap :CastSprite = addChild(new CastSprite( { x:10, y:120 } )) as CastSprite;
            var loader:CastLoader = wrap.addChild(new CastLoader()) as CastLoader;
            
            // 1.ローカル画像の読み込み
            var loadBtn :CastButton = addChild(new CastButton( { x:10, y:10 } )) as CastButton;
            loadBtn.addChild(new CastTextField({text:"SELECT", opaqueBackground: 0xCCCCCC, selectable: false}));
            loadBtn.addEventListener("click", function():void { fr.browse(); });
            
            // 2.緑色にする
            fr.addEventListener("select", function():void { fr.load(); });
            fr.addEventListener("complete", function():void {
                loader.contentLoaderInfo.addEventListener("init", function():void {
                    var side:int = 256;
                    if(loader.width > loader.height){
                        if(loader.width > side){
                            loader.width = side;
                            loader.scaleY = loader.scaleX;
                        }
                    }else{
                        if(loader.height > side){
                            loader.height = side;
                            loader.scaleX = loader.scaleY;
                        }
                    }
                    Tweener.addTween(loader, {_color_redOffset:-150, _color_blueOffset:-150, time:2 } );
                });
                loader.loadBytes(fr.data);
            });
            
            // 3.保存する
            var saveBtn :CastButton = addChild(new CastButton( { x:130, y:10 } )) as CastButton;
            saveBtn.addChild(new CastTextField({text:"SAVE", opaqueBackground: 0xCCCCCC, selectable: false})) ;
            saveBtn.addEventListener("click", function():void {
                if (!loader.content) return;
                var capture :BitmapData = new BitmapData(loader.width, loader.height);
                capture.draw(wrap);
                fr.save((new PNGEncoder()).encode(capture), "geeen-icon.png");
            });
        }
    }
}