XML Loader

4月 28, 2009 · Posted in Flash · コメントは受け付けていません。 

XMLを読み込むためのカスタムイベント

ソースダウンロード

file:xmlLoaderEvent.as

Action Script
package{
	import flash.display.*;
	import flash.net.URLRequest;
	import flash.events.EventDispatcher;
	import flash.events.Event;

	import flash.system.*;
	import flash.net.URLRequest;
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;

	public class xmlLoaderEvent extends EventDispatcher{

		private var _url:String;
		public static  const LOAD_COMPLETE:String = "load_complete";
		private var xmlLoader:URLLoader;
		private var _XML:XML;
		/*=======================================*//**
		 * コンストラクタ
		 */
		public function xmlLoaderEvent(url:String):void{

			//URLLoader作成
			xmlLoader = new URLLoader();
			xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
			xmlLoader.addEventListener(Event.COMPLETE, onXMLloaded);
			//URL
			var urlReq:URLRequest =  new URLRequest(url);
			//Unicode以外ならばtrue
			System.useCodePage = false;
			//読み込み開始
			xmlLoader.load(urlReq);

		}

		public function onXMLloaded(event:Event):void{
			_XML = new XML(xmlLoader.data);
			dispatchEvent(new Event(LOAD_COMPLETE) );
		}

		public function get xmldata():XML{
			return this._XML;
		}

	}
}

file:xmlLoadTest.as

Action Script
package{
	import flash.display.*;
	import flash.events.Event;
	import xmlLoaderEvent;

	public class xmlLoadTest extends MovieClip{

		private var xmload:xmlLoaderEvent;
		private var _XML:XML;
		/*=======================================*//**
		 * コンストラクタ
		 */
		public function xmlLoadTest():void{

			xmload = new xmlLoaderEvent("test.xml");
   			xmload.addEventListener(xmlLoaderEvent.LOAD_COMPLETE, onXMLloaded);  

		}

		private function onXMLloaded(evt:Event):void{
			trace(xmload.xmldata);
		}

	}
}

習作2009/03/08

3月 8, 2009 · Posted in Flash · コメントは受け付けていません。 
Action Script
package
{

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

	import flash.text.TextField;
	import flash.events.*;

	public class Mosaic extends Sprite
	{

		private var _bg:BG;
		private var _MosaicData:BitmapData;
		private var _MosaicData2:BitmapData;
		private var _Mosaic:Bitmap;
		private var timer:Timer;

		private var time:Number = 0.07;

		public function Mosaic()
		{
			init();
		}

		private function init():void{

			this._MosaicData = new BitmapData(500 ,400,true,0x00000000);
			this._MosaicData2 = new BitmapData(500 ,400,true,0x00000000);
			_bg = new BG();
			addChild( _bg );
			_Mosaic = new Bitmap(this._MosaicData2);

			_bg.addEventListener(Event.ADDED , ontest);
			addChild( _Mosaic );

			timer = new Timer(5, 0);
			timer.addEventListener(TimerEvent.TIMER, onTick);
			timer.start();

		}

		private function ontest( evt:Event ) : void {
		}

		private function onTick( evt:TimerEvent ) : void {

			if(time > 1){
				time = 0.01;
			}

			var myMatrix:Matrix = new Matrix();
			myMatrix.scale(time,time);
			this._MosaicData.draw(_bg ,myMatrix);

			this._MosaicData2.draw(this._MosaicData);

			_Mosaic.scaleX = _Mosaic.scaleY = 1/time; 

			time += 0.005;
		}

	}
}

習作2009/02/13

2月 13, 2009 · Posted in Flash · コメントは受け付けていません。 
Action Script
package {

	import flash.display.MovieClip;
	import flash.display.Stage;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.geom.Point;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import com.google.maps.controls.OverviewMapControl;
	import com.google.maps.MapEvent;
	import com.google.maps.MapMouseEvent;
	import com.google.maps.Map;
	import com.google.maps.MapType;
	import com.google.maps.LatLng;
	import com.google.maps.LatLngBounds;
	import com.google.maps.ProjectionBase;
	import com.google.maps.interfaces.IProjection;
	import com.google.maps.interfaces.IMapType;
	import com.google.maps.controls.MapTypeControl;
	import com.google.maps.controls.ZoomControl;
	import com.google.maps.controls.PositionControl;
	import com.google.maps.overlays.Marker;
	import com.google.maps.overlays.MarkerOptions;
	import com.google.maps.styles.StrokeStyle;
	import com.google.maps.styles.FillStyle;

	public class Gmap extends MovieClip {

		const APP_ID:String = "api key";
		var mapContainer:MovieClip;
		public var googleMap:Map;

		//コンストラクタ
		public function Gmap():void{
			init();
		}

		//Google MAP 作成
		function init():void {
			//ムービークリップ作成
			mapContainer = new MovieClip();
			mapContainer.x = mapContainer.y = 0;
			//Google MAP 作成
			googleMap = new Map();
			googleMap.key = APP_ID;
			googleMap.language = "ja";
			googleMap.setSize(new Point(stage.stageWidth, stage.stageHeight));	//サイズ設定
			googleMap.addControl(new PositionControl());
			googleMap.addControl(new ZoomControl());
			googleMap.addControl(new MapTypeControl());
			googleMap.addControl(new OverviewMapControl());
			googleMap.addEventListener(MapEvent.MAP_READY, onMapReady, false, 0, true);	//イベント設定
			//配置
			addChild(mapContainer);
			mapContainer.addChild(googleMap);
		}

		//地図生成完了イベント
		function onMapReady(e:MapEvent):void {
			googleMap.removeEventListener(MapEvent.MAP_READY, onMapReady);
			//初期表示設定
			googleMap.enableScrollWheelZoom();
			googleMap.enableContinuousZoom();
			googleMap.setCenter(new LatLng(34.985458, 135.757755), 16, MapType.NORMAL_MAP_TYPE);
			//マーカー追加
			addMarkers();
			//ステージ設定
			initStage();
		}

		//マーカー配置
		function addMarkers():void {
			//マーカー1設定
			var marker1:Marker = new Marker(new LatLng(34.985458, 135.757755));
			marker1.addEventListener(MapMouseEvent.CLICK, clicked, false, 1, true);

			//マーカー配置
			googleMap.addOverlay(marker1);

		}

		//マーカークリックイベント
		function clicked(event:MapMouseEvent):void {
			googleMap.panTo(event.target.getLatLng());
		}

		//ステージ設定
		public function initStage():void {
			stage.showDefaultContextMenu = false;
			stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.align = StageAlign.TOP_LEFT;
			stage.addEventListener(Event.RESIZE, stageResizeListener);
			stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListener, true);
		}

		//マウス移動イベント
		function mouseMoveListener(e:MouseEvent):void {
			//マウスの座標取得
			var nowLL:LatLng = googleMap.fromViewportToLatLng(new Point(mouseX, mouseY));
			trace(nowLL.lat()+" , "+nowLL.lng());
		}

		//ステージリサイズイベント
		public function stageResizeListener(e:Event):void {
			googleMap.setSize(new Point(stage.stageWidth, stage.stageHeight));
		}

	}
}

習作2009/01/18

1月 18, 2009 · Posted in Flash · コメントは受け付けていません。 
Action Script
package
{

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

	import flash.text.TextField;
	import flash.events.*;

	public class BallAnim extends Sprite
	{

		private var _Ball:BitmapData;
		private var _Background:BitmapData;
		private var _Background2:BitmapData;
		private var _Background3:BitmapData;

		private var total:uint=100;

		private var _dA:Array;

		private var _color:Array =  new Array(0xFF0000, 0x00FF00,0x0000FF,0xFFFF00,0x00FFFF,0xFF00FF,0xFFFFFF);
		private var _img:Array;

		private var bf:BlurFilter = new BlurFilter(5, 5, 1);

		public function BallAnim()
		{
			init();
		}

		private function init():void{

			this._dA = new Array();

			for(var i:uint=0; i<total; i++){
				var dA = new Array();

				dA[0] = Math.random()*stage.stageWidth;
				dA[1] = Math.random()*stage.stageHeight;
				dA[2] = Math.random()*6-3;
				dA[3] = Math.random()*6-3;
				dA[4] = Math.round(Math.random()*(_color.length-1));

				this._dA[i] = dA;
			}
			/////////////////////////
			this._img = new Array();

			for(var s:uint=0; s<_color.length; s++){
				var ball:Sprite = new Sprite();

				ball.graphics.beginFill(_color[s]);
				ball.graphics.drawCircle(5, 5, 5);
				ball.graphics.endFill();
				var ballBitmapData:BitmapData = new BitmapData(10,10,true,0x00FFFFFF);

				ballBitmapData.draw(ball);
				this._img[s] = ballBitmapData;
			}

			this._Background = new BitmapData(stage.stageWidth ,stage.stageHeight,true,0x00000000);
			this._Background2 = new BitmapData(stage.stageWidth ,stage.stageHeight,true,0x00000000);
			this._Background3 = new BitmapData(stage.stageWidth ,stage.stageHeight,true,0x00000000);

			addChild( new Bitmap(this._Background3) );
			addChild( new Bitmap(this._Background) );

			addEventListener(Event.ENTER_FRAME, onAnim);
		}

		private function onAnim(e:Event):void{
			this._Background.copyPixels(this._Background2, new Rectangle(0, 0, stage.stageWidth, stage.stageHeight), new Point(0, 0));

			for(var i:uint=0; i<total; i++){
				var pos:Point = new Point(this._dA[i][0], this._dA[i][1]);

				this._Background.copyPixels(this._img[this._dA[i][4]], new Rectangle(0, 0, 10, 10), pos);
				this._dA[i][0] += this._dA[i][2];
				this._dA[i][1] += this._dA[i][3];

				if(this._dA[i][0]<0 || this._dA[i][0] > stage.stageWidth) this._dA[i][2] = this._dA[i][2]*-1;
				if(this._dA[i][1]<0 || this._dA[i][1] > stage.stageHeight) this._dA[i][3] = this._dA[i][3]*-1;
			}

			this._Background3.draw(this._Background);
			this._Background3.applyFilter(this._Background3, this._Background3.rect, new Point(0,0), bf);

		}

		private function argbtohex(a:Number, r:Number, g:Number, b:Number):uint{
		     return (a<<24 | r<<16 | g<<8 | b)
		}

	}
}

習作2009/01/17

1月 18, 2009 · Posted in Flash · コメントは受け付けていません。 
Action Script
package
{

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

	import flash.text.TextField;
	import flash.events.*;

	public class BallAnim extends Sprite
	{

		private var _Ball:BitmapData;
		private var _Background:BitmapData;
		private var _Background2:BitmapData;

		private var total:uint=4000;

		private var _dA:Array;

		private var _color:Array =  new Array(0xFF0000, 0x00FF00,0x0000FF,0xFFFF00,0x00FFFF,0xFF00FF);
		private var _img:Array;

		public function BallAnim()
		{
			init();
		}

		private function init():void{

			this._dA = new Array();

			for(var i:uint=0; i<total; i++){
				var dA = new Array();

				dA[0] = Math.random()*stage.stageWidth;
				dA[1] = Math.random()*stage.stageHeight;
				dA[2] = Math.random()*4-2;
				dA[3] = Math.random()*4-2;
				dA[4] = Math.round(Math.random()*(_color.length-1));

				this._dA[i] = dA;
			}
			/////////////////////////
			this._img = new Array();

			for(var s:uint=0; s<_color.length; s++){
				var ball:Sprite = new Sprite();

				ball.graphics.beginFill(_color[s]);
				ball.graphics.drawCircle(1, 1, 1);
				ball.graphics.endFill();
				var ballBitmapData:BitmapData = new BitmapData(2,2,true,0x00FFFFFF);
				ballBitmapData.draw(ball);
				this._img[s] = ballBitmapData;
			}

			this._Background = new BitmapData(stage.stageWidth ,stage.stageHeight,false,0x000000);
			this._Background2 = new BitmapData(stage.stageWidth ,stage.stageHeight,false,0x000000);

			addChild( new Bitmap(this._Background) );

			addEventListener(Event.ENTER_FRAME, onAnim);
		}

		private function onAnim(e:Event):void{
			this._Background.copyPixels(this._Background2, new Rectangle(0, 0, stage.stageWidth, stage.stageHeight), new Point(0, 0));

			for(var i:uint=0; i<total; i++){
				var pos:Point = new Point(this._dA[i][0], this._dA[i][1]);

				this._Background.copyPixels(this._img[this._dA[i][4]], new Rectangle(0, 0, 10, 10), pos);

				this._dA[i][0] += this._dA[i][2];
				this._dA[i][1] += this._dA[i][3];

				if(this._dA[i][0]<0 || this._dA[i][0] > stage.stageWidth) this._dA[i][2] = this._dA[i][2]*-1;
				if(this._dA[i][1]<0 || this._dA[i][1] > stage.stageHeight) this._dA[i][3] = this._dA[i][3]*-1;
			}
		}

	}
}

3次元座標を2次元に変換

10月 3, 2007 · Posted in Flash · コメントは受け付けていません。 
Action Script
class dimensionClass{
private var mc:MovieClip;
private var h:Number = 500;
private var mx:Number = 0;
private var my:Number = 0;

public function dimensionClass(target:MovieClip){
mc = target;
}

public function setOption( pars:Number , midx:Number , midy:Number):Void{
h = pars;
mx = midx;
my = midy;
}

public function threetotwo( x:Number, y:Number, z:Number ):Void{

mc._x = (h*x)/(h-z) + mx;
mc._y = (h*y)/(h-z) + my;

var xx = (h*(x+100))/(h-z) + mx;
var sc = xx - mc._x;
mc._xscale = sc;
mc._yscale = sc;

mc.swapDepths(mc._xscale*100000);
}

}
Action Script
var zz = 0;

var plObj:dimensionClass = new dimensionClass(test);

plObj.setOption( 400 , Stage.width/2 , Stage.height/2);

this.onEnterFrame = function(){
plObj.threetotwo(100 , 100 , zz);
zz++;
}

OEKAKI BOARD

10月 3, 2007 · Posted in Flash · コメントは受け付けていません。 

oekaki board
OEKAKI BOARD

円運動

6月 17, 2007 · Posted in Flash · コメントは受け付けていません。 

概要

円運動(この名称間違ってる?)の数式。
最近、頭のハードディスクがいっぱいですわ。
バックアップ!!

Action Script 2

Action Script
i=0;//角度
midx = 320;//中心点x
midy = 240;//中心点y
r =100;//半径
this.onEnterFrame = function(){
 _x = Math.cos( i * Math.PI/180) * r + midx;
 _y = Math.sin( i * Math.PI/180) * r + midy;
 i +=3;
}

Read more

ブラウザリサイズ時の処理

4月 15, 2007 · Posted in Flash · コメントは受け付けていません。 
Action Script
///ブラウザがリサイズされた時/////////////
function window_resize(){
ブラウザリサイズ時の処理
}
myListener = new Object();
myListener.onResize = window_resize;
Stage.addListener(myListener);

RGBを16進数に変換する

1月 25, 2007 · Posted in Flash · コメントは受け付けていません。 

概要

RGBを16進数に変換する

Action Script
function argbtohex(a:Number, r:Number, g:Number, b:Number){
    return (a<<24 | r<<16 | g<<8 | b)
}

次ページへ »

Page 1 of 212»