ActionScript 3 重新精神

package{
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	
	[SWF(backgroundColor="0x333333", width="800",
     height="600", frameRate="31")]
	
	public class Reparenting extends Sprite {
		private var parent1:Sprite;
		private var parent2:Sprite;
		private var ball:Sprite;
		
		public function Reparenting(){
			init();
		}
		
		private function init():void {
			parent1 = new Sprite();
			addChild(parent1);
			parent1.graphics.lineStyle(1,0);
			parent1.graphics.drawRect(-50,-50,100,100);
			parent1.x = 60;
			parent1.y = 60;
			
			parent2 = new Sprite();
			addChild(parent2);
			parent2.graphics.lineStyle(1,0);
			parent2.graphics.drawRect(-50,-50,100,100);
			parent2.x = 170;
			parent2.y = 60;
			
			ball = new Sprite();
			parent1.addChild(ball);
			ball.graphics.beginFill(0xffffff);
			ball.graphics.drawCircle(0,0,40);
			ball.graphics.endFill();
			ball.addEventListener(MouseEvent.CLICK, onBallClick);
		}
		
		public function onBallClick(event:MouseEvent):void {
			parent2.addChild(ball);
		}

	}//class
}//package

ActionScript 3 Flash CS3:comunicazione con un Web Server

var variables:URLVariables = new URLVariables();
variables.miavariabile = "Ciao";
var request:URLRequest = new URLRequest();
request.url = "http://www.miodominio.com/miapagina.php";
request.method = URLRequestMethod.POST;
request.data = variables;
var loader:URLLoader = new URLLoader();
loader.dataFormat = URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE, completeHandler);
try {
	loader.load(request);
} catch (error:Error) {
	trace("Errore nel caricamento dell' URL");
}
function completeHandler(event:Event):void {
	var x_xml:XML = XML(event.target.data);
	trace(x_xml);
}
import flash.geom.Point;

private function dist( toX:Number, toY:Number, fromX:Number, fromY:Number ) : Number {
	return Point.distance( new Point( toX, toY ), new Point( fromX, fromY ) );
}

ActionScript 3 DrawingAPI

/* 
/////---- Class by Dave Ga?mez (.swfgeek) 24-February-2008 http://www.swfgeek.net----\\\\\\
///---- Original Example by: Sorin Haidan in his  Draw Custom shapes with ActionScript 3.0. Tutorial ----\\\
///---- Found on his blog http://biochimistu.blogspot.com/ ---- \\\
*/

package {
    
    import flash.display.GradientType;
    import flash.display.SpreadMethod;
    import flash.display.Sprite;
    import flash.display.StageScaleMode;
    import flash.display.StageAlign;
    import flash.events.MouseEvent;
    import flash.geom.Matrix;
    import com.adobe.viewsource.ViewSource;
    
    [SWF(backgroundColor="0x000000",frameRate="31")]

    public class DrawingAPI extends Sprite
    {
        private var sprite:Sprite;
        private var holder:Sprite;
        private var myCircle:Sprite;
        private var fillType:String;
        private var colors:Array;
        private var alphas:Array;
        private var ratios:Array;
        private var matr:Matrix;
        private var spreadMethod:String;
        private var focalPointRatio:Number;
        
        public function DrawingAPI()
        {
            init();
        }
        
        private function init():void
        {
            ViewSource.addMenuItem(this, "srcview/index.html");
            stage.scaleMode = StageScaleMode.NO_SCALE;
            stage.align = StageAlign.TOP_LEFT;
            stage.addEventListener(MouseEvent.MOUSE_DOWN,prepareToDraw);
            
        }
        
        public function prepareToDraw(event:MouseEvent):void
         {
          stage.addEventListener(MouseEvent.MOUSE_MOVE,drawGraphics);
          stage.addEventListener(MouseEvent.MOUSE_UP,stopDrawing);
      
         }
         
        public function drawGraphics(event:MouseEvent):void
        {
         fillType = GradientType.RADIAL;
         colors = [0xFFFFFF, Math.random()*0xFFFFFF];
         alphas = [1, 1];
         ratios = [0x37, 0xFF];
         matr= new Matrix();
         matr.createGradientBox(100, 100, Math.random()*360, -40, 0);
         spreadMethod = SpreadMethod.PAD;
         focalPointRatio = 1;
         holder = new Sprite();
         addChild(holder);
         myCircle = new Sprite();
         myCircle.graphics.beginGradientFill(fillType, colors, alphas, ratios, matr,spreadMethod);  
         myCircle.graphics.drawCircle(0,0,40);
         myCircle.graphics.endFill();
         holder.addChild(myCircle);
         holder.x = mouseX;
         holder.y = mouseY;
         holder.scaleX = holder.scaleY = Math.random()*2+0.5;
         holder.rotation = Math.random()*360;
         holder.alpha = Math.random()+0.7;
       }
       
        public function stopDrawing(event:MouseEvent):void
       {
        stage.removeEventListener(MouseEvent.MOUSE_MOVE,drawGraphics)
       }
    }
}

ActionScript 3 关于删除

//delete will not delete the content,but the variable container,so the content will still survives in memory until all reference are removed and it is collected by the garbage collect.

var foo = bar = new Object();
delete(foo);
trace(bar);//Object object

ActionScript 3 AppModelLocator模型

package ###PACKAGE### {


	import com.adobe.cairngorm.model.ModelLocator;
	import mx.logging.ILogger;
	
	

 	[Bindable]
	public class ###CLASSFILENAME### implements ModelLocator {
	
		private static var model : AppModelLocator;

		public function AppLocator() : void {
			if ( AppModelLocator.model != null )
				throw new Error( "Only one ModelLocator instance should be instantiated" );
			}

		// singleton: always returns the one existing static instance to itself
		public static function getInstance() : AppModelLocator {
			if ( model == null )
			model = new AppModelLocator();
			return model;
			}
		}
}

ActionScript 3 [rpcDelegatedCommand]

###LICENSE###
/***************************************************************
* ###DATE###
* ###USER:realName###
***************************************************************/

package ###PACKAGE### {
	
	
	import ###BUSINESS###.*;
	import ###CONTROL###.*;
	import ###VO###.*;

	import ###MODEL###.AppModelLocator;

	import com.adobe.cairngorm.commands.Command;
	import com.adobe.cairngorm.control.CairngormEvent;
	import com.adobe.cairngorm.control.CairngormEventDispatcher;
	
	import mx.collections.ArrayCollection;
	import mx.rpc.IResponder;

	public class ###CLASSFILENAME### implements Command, IResponder {

		private var model : AppModelLocator = AppModelLocator.getInstance();
		
		public function execute( cgEvent:CairngormEvent ) : void {
			var delegate : ###CLASSDELEGATE### = new ###CLASSDELEGATE###(this);
			delegate.###CLASSDELEGATESERVICE###();
			}
		public function result( rpcEvent : Object ) : void {
			// model.listDP = new ArrayCollection(rpcEvent.result);	
			}
		public function fault( rpcEvent : Object ) : void {
			// model.errorStatus = "Fault occured in ###CLASSFILENAME###.";
			}
		}
	}

ActionScript 3 电子邮件检查

function checkEmail (mail:String):Boolean {
var regExpPattern : RegExp = /^[0-9a-zA-Z][-._a-zA-Z0-9]*@([0-9a-zA-Z][-._0-9a-zA-Z]*\.)+[a-zA-Z]{2,6}$/;
if( mail.match(regExpPattern) == null ) { return false; } else { return true; } 
}

trace(checkEmail("martin@@domain.ch")); //false
trace(checkEmail("martin@domain.ch")); //true
trace(checkEmail("martin@domain")); //false
trace(checkEmail("@domain.de"));//false
trace(checkEmail("martin.bommeli@domain.ch")); //true
trace(checkEmail("martin bommeli@domain.ch")); //false
trace(checkEmail("martin+bommeli@domain.ch")); //false
trace(checkEmail("martin_bommeli@subdomain.domain.ch")); //true
trace(checkEmail("martin_bommeli@@subdomain.domain.ch")); //false

ActionScript 3 ActiveRecord v0.1

package
{
    import flash.utils.flash_proxy;
    import flash.utils.Proxy;
    import flash.utils.getDefinitionByName;
    import flash.utils.getQualifiedClassName;

    public dynamic class ActiveRecord extends Proxy
    {
        public function ActiveRecord()
        {
            
        }
        flash_proxy override function callProperty(method: *, ...args): * {
            try {          
                var clazz : Class = getDefinitionByName(getQualifiedClassName(this)) as Class;
                return clazz.prototype[method].apply(method, args);
            }
            catch (e : Error) {
                return methodMissing (method, args);
            }
        }
         protected function methodMissing(method : *, args : Array) : Object{
            throw( new Error("Method Missing"));
            return null;
        }
    }
}

ActionScript 3 Blog.as v0.1

package
{
    dynamic public class Blog extends ActiveRecord
    {
        public function Blog()
        {
        }

    }
}