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 · コメントは受け付けていません。
円運動
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;
}
ブラウザリサイズ時の処理
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)
}


