とりあえず、forkしとく。forked from: Progression4 Amateur
forked from Progression4 Amateur (diff: 46)
♥0 |
Line 154 |
Modified 2009-10-16 04:34:23 |
MIT License
archived:2017-03-20 17:14:55
| (replaced)
ActionScript3 source code
/**
* Copyright mtok ( http://wonderfl.net/user/mtok )
* MIT License ( http://www.opensource.org/licenses/mit-license.php )
* Downloaded from: http://wonderfl.net/c/9sbd
*/
// forked from checkmate's Progression4 Amateur
package {
import flash.display.*;
import flash.events.*;
import flash.text.TextField;
import flash.text.TextFormat;
import jp.progression.casts.*;
import jp.progression.commands.*;
import jp.progression.commands.lists.*;
import jp.progression.commands.net.*;
import jp.progression.config.*;
import jp.progression.data.*;
import jp.progression.events.*;
import jp.progression.scenes.*;
import jp.progression.*;
[SWF( width=465, height=465, backgroundColor=0xFFFFFF, frameRate=30 )]
public class Amateur extends Sprite {
public var manager:Progression, self:Amateur;
// Graphics
public var face:MovieClip;
public var hair:MovieClip;
public var eyeBrowLeft:MovieClip, eyeBrowRight:MovieClip;
public var eyeLeft:MovieClip, eyeRight:MovieClip;
public var nose:MovieClip;
public var mouth:MovieClip;
private var _status:Array;
// Do Something
public function atReady():void {
addChild( face );
addChild( mouth );
addChild( nose );
addChild( eyeLeft );
addChild( eyeRight );
addChild( eyeBrowLeft );
addChild( eyeBrowRight );
addChild( hair );
//var tf:TextField = new TextField();
//var f:TextFormat = new TextFormat(null, 20);
//tf.text = "肉";
//tf.setTextFormat(f);
//tf.selectable = false;
//addChild(tf);
//tf.x = 100;
//tf.y = 100;
_status = [];
for ( var i:int = 0, l:int = numChildren; i < l; i++ ) {
var child:DisplayObject = getChildAt( i );
_status.push( {
x:child.x,
y:child.y,
scaleX:child.scaleX,
scaleY:child.scaleY,
rotation:child.rotation
} );
}
//stage.addEventListener( MouseEvent.CLICK, _click );
}
private function _click( e:MouseEvent ):void {
for ( var i:int = 0, l:int = numChildren; i < l; i++ ) {
var child:DisplayObject = getChildAt( i );
var status:Object = _status[i];
child.x = status.x + ( Math.random() - 0.5 ) * 10;
child.y = status.y + ( Math.random() - 0.5 ) * 10;
child.scaleX = status.scaleX + ( Math.random() - 0.5 ) / 2;
child.scaleY = status.scaleY + ( Math.random() - 0.5 ) / 2;
child.rotation = status.rotation + ( Math.random() - 0.5 ) * 10;
}
}
public function Amateur() {
CheckmateBuilder.initialize( this );
}
}
}
import flash.display.*;
import flash.events.*;
import flash.net.URLRequest;
import flash.system.ApplicationDomain;
import jp.progression.casts.*;
import jp.progression.commands.*;
import jp.progression.commands.lists.*;
import jp.progression.commands.net.*;
import jp.progression.config.*;
import jp.progression.data.*;
import jp.progression.events.*;
import jp.progression.scenes.*;
import jp.progression.*;
class CheckmateBuilder extends EventDispatcher {
public static var GRAPHICS_URL:String = "http://swf.wonderfl.net/static/assets/checkmate04/AmateurAssets.swf";
//public static var GRAPHICS_URL:String = "./assets/AmateurAssets.swf";
private static var _target:Amateur;
private static var _manager:Progression;
public static function initialize( target:Amateur ):void {
if ( _target ) { return; }
_target = target;
_target.self = target;
Progression.initialize( new BasicAppConfig() );
_manager = new Progression( "index", _target.stage );
_manager.root.addEventListener( SceneEvent.SCENE_LOAD, _sceneLoad );
_manager.root.addEventListener( SceneEvent.SCENE_INIT_COMPLETE, _sceneInitComplete );
_manager.goto( _manager.root.sceneId );
}
private static function _sceneLoad( e:SceneEvent ):void {
_manager.root.addCommand(
new LoadSWF( new URLRequest( GRAPHICS_URL ) ),
function():void {
var loader:Loader = Loader( this.latestData );
var domain:ApplicationDomain = loader.contentLoaderInfo.applicationDomain;
_target.face = new ( domain.getDefinition( "Face" ) as Class );
_target.face.x = 234;
_target.face.y = 242;
_target.hair = new ( domain.getDefinition( "Hair" ) as Class );
_target.hair.x = 233;
_target.hair.y = 194;
_target.eyeBrowRight = new ( domain.getDefinition( "EyeBrowRight" ) as Class );
_target.eyeBrowRight.x = 190;
_target.eyeBrowRight.y = 218;
_target.eyeBrowLeft = new ( domain.getDefinition( "EyeBrowLeft" ) as Class );
_target.eyeBrowLeft.x = 270;
_target.eyeBrowLeft.y = 218;
_target.eyeRight = new ( domain.getDefinition( "EyeRight" ) as Class );
_target.eyeRight.x = 190;
_target.eyeRight.y = 248;
_target.eyeLeft = new ( domain.getDefinition( "EyeLeft" ) as Class );
_target.eyeLeft.x = 272;
_target.eyeLeft.y = 243;
_target.nose = new ( domain.getDefinition( "Nose" ) as Class );
_target.nose.x = 236;
_target.nose.y = 275;
_target.mouth = new ( domain.getDefinition( "Mouth" ) as Class );
_target.mouth.x = 242;
_target.mouth.y = 322;
_target.face.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_target.eyeBrowRight.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_target.eyeBrowLeft.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_target.eyeRight.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_target.eyeLeft.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_target.nose.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_target.hair.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
_target.mouth.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
}
);
}
static private function mouseDownHandler(e:MouseEvent):void
{
var d:DisplayObject = e.target as DisplayObject;
if (!d) {
d = e.target as flash.text.TextField;
}
var st:Stage = d.stage;
var offsetX:Number = d.mouseX;
var offsetY:Number = d.mouseY;
if (d) {
st.addEventListener(MouseEvent.MOUSE_MOVE,
function(ev:MouseEvent):void {
if (ev.buttonDown) {
d.x = st.mouseX - offsetX;
d.y = st.mouseY - offsetY;
}else {
st.removeEventListener(ev.type, arguments.callee);
}
});
}
}
private static function _sceneInitComplete( e:SceneEvent ):void {
_target.atReady();
}
}