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

PerlinNoise の引数をわかりやすくまとまる

///////////////////////////////////// 
PerlinNoise の引数をわかりやすくまとまる
下部 enterFrameH 内

BitmapData.perlinNoise(
64,//-----------------/ 1 : X周波数 : int
64,//-----------------/ 2 : Y周波数 : int
2,//------------------/ 3 : レイヤー枚数 :int
100,//----------------/ 4 : 波動の乱れのダイナミクス : int
true,//--------------- / 5 : タイリング用に上下と左右をつなぐ ?
true,//--------------- / 6 : フラクタルノイズ? 
(1 | 1 | 8 | 1),//---------/ 7 : カラーチャンネルをビットで指定 : ( 0x01R | 0x02 G |  0x04 B | 0x08 Alpha )
true,//--------------- / 8 : グレイスケール?
offset//-------------- / 9 : 各レイヤーをスクロールするためのPoint型の配列
);

※ ちなみに第5引数のタイリング、最初のフレームでしか効かないです。研究中。

※ 以下のページ、とってもわかりやすいです。

にゃあプロジェクト - ウェブログ - BitmapDataでノイズ生成 (2):
http://www.project-nya.jp/modules/weblog/details.php?blog_id=478

/////////////////////////////////////
Get Adobe Flash player
by mi77 21 Jan 2010
/**
 * Copyright mi77 ( http://wonderfl.net/user/mi77 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/xHXy
 */

/*
///////////////////////////////////// 
PerlinNoise の引数をわかりやすくまとまる
下部 enterFrameH 内

BitmapData.perlinNoise(
    64,//-----------------/ 1 : X周波数 : int
    64,//-----------------/ 2 : Y周波数 : int
    2,//------------------/ 3 : レイヤー枚数 :int
    100,//----------------/ 4 : 波動の乱れのダイナミクス : int
    true,//--------------- / 5 : タイリング用に上下と左右をつなぐ ?
    true,//--------------- / 6 : フラクタルノイズ? 
    (1 | 1 | 8 | 1),//---------/ 7 : カラーチャンネルをビットで指定 : ( 0x01R | 0x02 G |  0x04 B | 0x08 Alpha )
    true,//--------------- / 8 : グレイスケール?
    offset//-------------- / 9 : 各レイヤーをスクロールするためのPoint型の配列
);

※ ちなみに第5引数のタイリング、最初のフレームでしか効かないです。研究中。

※ 以下のページ、とってもわかりやすいです。

    にゃあプロジェクト - ウェブログ - BitmapDataでノイズ生成 (2):
    http://www.project-nya.jp/modules/weblog/details.php?blog_id=478

///////////////////////////////////// 
 */

package 
{
////////////////////////////////////////////////////////////////////////////////// ラップれです
import flash.display.Sprite;
import org.libspark.thread.Thread;
import org.libspark.thread.EnterFrameThreadExecutor;

[SWF(frameRate = 20, width = 465, height = 465, backgroundColor = 0x000000)]

public class Wrap extends Sprite 
{
	private var t:MainThread;
	
	public function Wrap() 
	{
		if (!Thread.isReady) 
		{
			Thread.initialize(new EnterFrameThreadExecutor());//Thread・ス・ス・ス・ス
		}
		t = new MainThread(this);
		t.start();
	}
}
//////////////////////////////////////////////////////////////////////////////////
}

import flash.display.*;
import flash.events.*;
import flash.geom.*;
import flash.filters.*;

import org.libspark.thread.Thread;
import caurina.transitions.Tweener;
import caurina.transitions.properties.ColorShortcuts; ColorShortcuts.init();
import caurina.transitions.properties.FilterShortcuts; FilterShortcuts.init();

internal class MainThread extends Thread
{
	private var main:Sprite;
	private var sp:Sprite;
	private var bmps:Object;
	private var bmds:Object;
	private var offset:Object;
	private const size:int=128;
	private var i:int;
	
	public function MainThread(main:Sprite)
	{
		this.main = main;
	}
	
    override protected function run():void
    {
		sp = new Sprite();
		main.addChild(sp);
		sp.x = 156;
		sp.y = 156;
		//
		bmds = [];
		bmps = [];
		bmds[0] = new BitmapData(size,size);
		bmps[0] = new Bitmap(bmds[0]);
		//bmps[1] = new Bitmap(bmds[0]);
		//bmps[2] = new Bitmap(bmds[0]);
		//bmps[3] = new Bitmap(bmds[0]);
		sp.addChild(bmps[0]);
		//sp.addChild(bmps[1]);bmps[1].x = size;
		//sp.addChild(bmps[2]);bmps[2].y = size;
		//sp.addChild(bmps[3]);bmps[3].y = size;
		//sp.addChild(bmps[3]);bmps[3].x = size;
		
		//
		initNoiz();
		sp.addEventListener(Event.ENTER_FRAME, enterFrameH);
	}
	
	private function initNoiz():void
	{
		offset = [new Point(0, 0), new Point(0, 0)];
		offset[0].x = 0;
		offset[0].y = 0;
		offset[1].x = 0;
		offset[1].y = 0;
	}
	
	public function enterFrameH(e:Event):void
	{
		offset[0].x += 2;
		offset[0].y += 2;
		offset[1].x += 4;
		offset[1].y += 4;
		bmds[0].perlinNoise(
			64,//-----------------/ 1 : X周波数 : int
			64,//-----------------/ 2 : Y周波数 : int
			2,//------------------/ 3 : レイヤー枚数 :int
			100,//----------------/ 4 : 波動の乱れのダイナミクス : int
			true,//--------------- / 5 : タイリング用に上下と左右をつなぐ ?
			true,//--------------- / 6 : フラクタルノイズ? 
			(2 | 4 | 8 | 1),//---------/ 7 : カラーチャンネルをビットで指定 : ( 0x01R | 0x02 G |  0x04 B | 0x08 Alpha )
			false,//--------------- / 8 : グレイスケール?
			offset//-------------- / 9 : 各レイヤーをスクロールするためのPoint型の配列
		);
		i++;
	}
	
	
    override protected function finalize():void
    {
	//
    }
}