お互いの家庭を壊さない事を約束して下さい
\:/ ◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃ \:/
…☆… ━┛━┛━┛━┛━┛━┛━┛━┛ …☆…
/:\ ◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃/:\
: ━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛ :
/**
* Copyright hgw ( http://wonderfl.net/user/hgw )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/rFkD
*/
/*
\:/ ◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃ \:/
…☆… ━┛━┛━┛━┛━┛━┛━┛━┛ …☆…
/:\ ◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃◯┃/:\
: ━┛━┛━┛━┛━┛━┛━┛━┛━┛━┛ :
*/
package
{
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.display.Sprite;
import flash.display.StageQuality;
import flash.events.Event;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.system.Security;
import flash.system.System;
import flash.text.TextField;
import flash.text.TextFormat;
[SWF(width="465", height="465", backgroundColor="0x000000", frameRate="60")]
public class MoninMonin extends Sprite
{
private var _fickrSearch:RamFlickrImgLoading;
private var _mmm:MMEffect;
private var t_name:TextField = new TextField();
private var t_title:TextField = new TextField();
private var t_title2:TextField = new TextField();
private var canvas:Bitmap = new Bitmap();
private var words:Array = ['nude','sexy','sexy','sexy', 'internet', 'spam', 'media', 'gif', 'message', 'massage', 'coca cola', 'animation', 'vitamin', 'office'];
private var fontsizes:Array = [110,90,90,90, 80, 90, 80, 110, 80, 80, 65, 70, 80, 80];
private var risizeMatrix:Matrix = new Matrix();
private var word:String;
public function MoninMonin()
{
stage.quality = StageQuality.LOW;
Security.loadPolicyFile("http://api.flickr.com/crossdomain.xml");
init();
}
private function init():void
{
var n:int = int(Math.random()*words.length);
word = words[n];
_fickrSearch = new RamFlickrImgLoading();
_fickrSearch.start(word);
_fickrSearch.loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onLoadedImage);
canvas = new Bitmap( new BitmapData(465,465,true,0x0) );
addChild( canvas );
t_name = new TextField();
t_name.defaultTextFormat = new TextFormat("Arial", 12, 0xffffff, true, true);
t_name.background = true;
t_name.backgroundColor = 0x0;
t_name.x = 10;
t_name.text = "LOADING...";
t_name.width = t_name.textWidth+5;
t_name.height = t_name.textHeight+5;
addChild( t_name );
t_title2 = new TextField();
t_title2.defaultTextFormat = new TextFormat("Arial", fontsizes[n], 0x0, true, true);
t_title2.text = "";
addChild( t_title2 );
t_title = new TextField();
t_title.defaultTextFormat = new TextFormat("Arial", fontsizes[n], 0xffffff, true, true);
t_title.text = "";
addChild( t_title );
}
/**
*
* @param e
*
*/
private function onLoadedImage(e:Event):void
{
t_name.text = "by "+_fickrSearch.photo_userName;
t_name.width = t_name.textWidth+5;
t_name.height = t_name.textHeight+5;
t_title.text = word.toLocaleUpperCase();
t_title.width = t_title.textWidth+20;
t_title.height = t_title.textHeight+5;
t_title2.text = t_title.text;
t_title2.width = t_title.textWidth+20;
t_title2.height = t_title.textHeight+5;
t_title.x = 467*.5-t_title.textWidth*.5;
t_title.y = 467*.5-t_title.textHeight*.5;
t_title2.x = t_title.x+1;
t_title2.y = t_title.y+1;
var src:BitmapData = (_fickrSearch.loader.contentLoaderInfo.content as Bitmap).bitmapData;
var sc:Number = 1;
if(src.height>src.width){
sc = 465/src.width;
risizeMatrix.scale( sc, sc );
risizeMatrix.ty = (465-(src.height*sc))*.5;
}else{
risizeMatrix.scale( 465/src.height, 465/src.height);
risizeMatrix.tx = (465-(src.width*sc))*.5;
}
var resizedImg:BitmapData = canvas.bitmapData.clone();
resizedImg.draw( src, risizeMatrix, null, null, null, true);
_mmm = new MMEffect( resizedImg, new Rectangle( int(465*.25),int(465*.25),237,237), 5 );
addEventListener( Event.ENTER_FRAME, updateHandler);
updateHandler(null);
Wonderfl.capture_delay( 10 );
}
private function updateHandler(e:Event):void
{
_mmm.update();
canvas.bitmapData.lock();
canvas.bitmapData.fillRect( canvas.bitmapData.rect, 0x0);
canvas.bitmapData.draw( _mmm.bitmapData, null, null, null, null, true);
canvas.bitmapData.unlock();
}
}
}
import flash.display.Bitmap;
import flash.display.BitmapData;
import flash.events.EventDispatcher;
import flash.geom.Matrix;
import flash.geom.Point;
import flash.geom.Rectangle;
import flash.utils.Timer;
internal class MMEffect extends EventDispatcher
{
private var src:BitmapData
private var result:BitmapData;
private var _mytimer:Timer;
private var _mosRect:Rectangle = new Rectangle();
private var _blockSize:int = 10;
private var arrsft:Vector.<int> = new Vector.<int>();
private var xLen:int;
private var yLen:int;
public function get bitmapData():BitmapData
{
return result;
}
public function MMEffect( src_:BitmapData, rect_:Rectangle, blocksize_:int)
{
_mosRect = rect_;
_blockSize = blocksize_;
src = src_.clone();
result = src_.clone();
xLen = int(rect_.width/blocksize_);
yLen = int(rect_.height/blocksize_);
arrsft = Vector.<int>( uniqueRandom( xLen*yLen ) );
arrsft.sort(
function(a:Number,b:Number):Number{
if(a == b) return 0;
if(a > b) return 1;
return -1;
}
);
}
private function uniqueRandom(num:Number):Array
{
var uniqueArray:Array = new Array(num);
var tmp:Array = new Array();
var i:int;
for(i=0; i<num; i++){
tmp.push( i );
}
for(i=0; i<num; i++)
{
var target:int = Math.floor(Math.random()*tmp.length);
uniqueArray[i] = tmp[target];
tmp.splice(target,1);
}
return uniqueArray;
}
public function update():void
{
for(var i:int = 0; i<yLen; i++){
arrsft = arrsft.concat(arrsft.splice( i, 1 ));
arrsft = arrsft.concat(arrsft.splice( i, yLen ));
}
if(result){
result.dispose();
result = null;
}
result = getMosaic(src, _blockSize);
}
private function getMosaic( bmpd:BitmapData, size_:int):BitmapData
{
var result:BitmapData = bmpd.clone();
var copyrect:Rectangle = new Rectangle( 0, 0, size_, size_ );
var distPt:Point = new Point();
var cnt:int=0;
result.lock();
for(var ix:int=0; ix<xLen; ix++){
for(var iy:int=0; iy<yLen; iy++){
var n:int = arrsft[cnt];
var nx:int = int(n/xLen);
var ny:int = n%yLen;
copyrect.x = _mosRect.x+(nx*size_);
copyrect.y = _mosRect.y+(ny*size_);
distPt.x = _mosRect.x+(ix*size_);
distPt.y = _mosRect.y+(iy*size_);
result.copyPixels( bmpd, copyrect, distPt);
cnt++;
}
}
result.unlock();
return result;
}
}
import flash.display.Loader;
import flash.events.Event;
import flash.events.IOErrorEvent;
import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.net.URLRequestMethod;
import flash.net.URLVariables;
import flash.system.LoaderContext;
import flash.system.Security;
internal class RamFlickrImgLoading
{
private var _urlloader:URLLoader;
private var _loader:Loader;
public function get loader():Loader{ return _loader; }
private var _keyword:String;
private var apikey:String = '1f1a5e2c8d57623a6f6f06d0939b53f4';
private var _photo_uname:String;
private var _photo_url:String;
public function get photo_userName():String { return _photo_uname; }
public function RamFlickrImgLoading( )
{
_loader = new Loader();
}
public function start(keyword_:String ):void
{
var vals:URLVariables = new URLVariables();
vals.api_key = apikey;
vals.method = "flickr.photos.search";
vals.text = keyword_;//encodeURI(keyword_);
vals.license = "4,2";
vals.extras = "owner_name";
vals.format = "rest";
var req:URLRequest = new URLRequest();
req.data = vals;
req.method = URLRequestMethod.GET;
req.url = "http://api.flickr.com/services/rest/";
_urlloader = new URLLoader( req );
_urlloader.addEventListener( Event.COMPLETE, onLoadedResultHandler );
}
private function onLoadedResultHandler(e:Event):void
{
_urlloader.removeEventListener( Event.COMPLETE, onLoadedResultHandler );
var xml:XML = XML(_urlloader.data);
if( xml.@stat == "ok" ){
var n:int = Math.random()*xml.photos.photo.length();
Security.loadPolicyFile("http://"+xml.photos.photo[n].@farm+".static.flickr.com/crossdomain.xml");
_photo_uname = xml.photos.photo[n].@ownername;
_photo_url = "http://farm"+xml.photos.photo[n].@farm+".static.flickr.com/"+xml.photos.photo[n].@server+"/"+xml.photos.photo[n].@id+"_"+xml.photos.photo[n].@secret+".jpg";
_loader.load( new URLRequest(_photo_url), new LoaderContext(true) );
_loader.contentLoaderInfo.addEventListener( IOErrorEvent.IO_ERROR, function(e:IOErrorEvent):void{trace(e)});
}
}
}