test( 1 );


function test( $id:int ):void

{

var i:uint = 0;

var len:uint = 5;

var arr:Array = [];

for( i; i<len; i++ )

{

if( i == $id )

{

//주석을 하나씩 풀어 테스트 해본다.

//continue;

//break;

//return;

}

arr.push( i );

// continue = 실행됨.

// return = 실행됨.

// break = 실행됨.

trace( arr );

}

// continue = 실행됨.

// return = 실행안됨,

// break = 실행됨.

trace( arr ); 

}

'ActionScript3.0 > 기초' 카테고리의 다른 글

With 문  (0) 2010.08.10
TextInput 에 마스크 먹이기~  (0) 2010.06.22
텍스트 필드에 포커스 이동하기.  (0) 2010.04.15
TimerEvent()  (0) 2010.03.19
Math.random(), TweenMax.DropShadowFilter  (0) 2010.02.09





A.as


package

{

import com.greensock.TweenLite;

import flash.display.Sprite;

import flash.events.MouseEvent;

public class A extends Sprite

{

public function A()

{

super();

setting();

}

private function setting():void

{

graphics.beginFill(0x000000, 1);

graphics.drawRect(0, 0, 100, 100);

graphics.endFill();

buttonMode = true;

}

public function onStart( $callback:Function = null):void

{

TweenLite.to( this, 1, { x:100, onComplete:function():void

{

if($callback != null)

$callback( "A motion End" );

} });

}

}

}





Main.as


package

{

import flash.display.Sprite;

import flash.events.MouseEvent;

public class Main extends Sprite

{

private var a:A;

public function Main()

{

setting();

}

private function setting():void

{

a = new A();

a.addEventListener( MouseEvent.CLICK, aClick );

addChild(a);

}

protected function aClick(event:MouseEvent):void

{

a.onStart( callBack ); 

}

private function callBack( $state:String ):void

{

trace( $state ); // A motion End

}

}

}

'ActionScript3.0 > As3.0' 카테고리의 다른 글

상속  (0) 2013.03.14
localToGlobal  (0) 2013.03.14
Function 전달.  (0) 2013.03.06
Function 참조.  (0) 2013.03.04
FLV 재생의 원리.  (3) 2010.09.02





Display.as


package

{

import flash.display.Sprite;

import flash.events.MouseEvent;

public class Display extends Sprite

{

protected var thisName:String;

public function Display()

{

super();

}

public function setData( $color:uint ):void

{

buttonMode = true;

setting( $color );

addEventListener( MouseEvent.CLICK, clickHandler );

}

protected function setting( $color:uint ):void

{

thisName = "Display";

graphics.beginFill( $color );

graphics.drawRect(0, 0, 100, 100);

graphics.endFill();

}

public var onClick:Function;

protected function clickHandler(e:MouseEvent):void

{

if( onClick != null )

onClick( thisName );

}

}

}






A.as


package

{

public class A extends Display

{

public function A()

{

super();

}

override protected function setting(  $color:uint ):void

{

thisName = "A";

graphics.beginFill( $color );

graphics.drawRect( 0, 0, 100, 100 );

graphics.endFill();

}

}

}






B.as


package

{

public class B extends Display

{

public function B()

{

super();

}

}

}






Main.as


package

{

import flash.display.Sprite;

import flash.filters.DisplacementMapFilter;

public class Main extends Sprite

{

public function Main()

{

var _a:Display = new A();

_a.setData( 0x000000 );

addChild( _a );

var _b:Display = new B();

_b.setData( 0x000000 );

addChild( _b );

_b.x = 200;

_a.onClick = onClick;

_b.onClick = onClick;

}

private function onClick( $name:String ):void

{

trace( $name ); // A, Display

}

}

}


'ActionScript3.0 > As3.0' 카테고리의 다른 글

CallBack Function  (0) 2013.03.14
localToGlobal  (0) 2013.03.14
Function 전달.  (0) 2013.03.06
Function 참조.  (0) 2013.03.04
FLV 재생의 원리.  (3) 2010.09.02

Main.as


package

{

import flash.display.Sprite;

import flash.events.MouseEvent;

import flash.geom.Point;


  [SWF( frameRate = "30", width="500", height="500", backgroundColor="0xffffff")]

public class Main extends Sprite

{

private var _a:A;

private var _b:B;

public function Main()

{

setting();

}

private function setting():void

{

_a = new A();

addChild(_a);

_b = new B();

_b.bClick = onBSet;

_a.addChild(_b);

}

private function onBSet( $point:Point ):void

{

trace(_b.x, _b.y);     // x : 0, y : 0

trace($point.x, $point.y); // x : 100, y : 100

}

}

}




A.as


package

{

import flash.display.Sprite;


public class A extends Sprite

{

public function A()

{

super();

graphics.beginFill(0x000000, 1);

graphics.drawRect(0, 0, 300, 300);

graphics.endFill();

x = 100;

y = 100;

}

}

}





B.as


package

{

import flash.display.Sprite;

import flash.events.MouseEvent;

import flash.geom.Point;

public class B extends Sprite

{

public function B()

{

super();

graphics.beginFill(0xff0000, 1);

graphics.drawRect(0, 0, 100, 100);

graphics.endFill();

addEventListener( MouseEvent.CLICK, onClick );

}

public var bClick:Function;

protected function onClick(e:MouseEvent):void

{

var globalPoint:Point = this.localToGlobal( new Point( 0, 0 ) );

if(bClick != null) 

bClick( globalPoint );

}

}

}

'ActionScript3.0 > As3.0' 카테고리의 다른 글

CallBack Function  (0) 2013.03.14
상속  (0) 2013.03.14
Function 전달.  (0) 2013.03.06
Function 참조.  (0) 2013.03.04
FLV 재생의 원리.  (3) 2010.09.02

Main.as



package

{

import flash.display.Sprite;

public class Main extends Sprite

{

public function Main()

{

var a:A = new A();

a.onClick = aClick;

addChild(a);

}

private function aClick():void

{

trace("click");

}

}

}





A.as



package

{

import flash.display.Sprite;

import flash.events.MouseEvent;

public class A extends Sprite

{

public function A()

{

super();

graphics.beginFill(0x000000, 1);

graphics.drawRect(0, 0, 50, 50);

graphics.endFill();

buttonMode = true;

addEventListener(MouseEvent.CLICK, clickHandler);

}

public var onClick:Function;

protected function clickHandler(event:MouseEvent):void

{

if(onClick != null)

onClick();

}

}

}

'ActionScript3.0 > As3.0' 카테고리의 다른 글

상속  (0) 2013.03.14
localToGlobal  (0) 2013.03.14
Function 참조.  (0) 2013.03.04
FLV 재생의 원리.  (3) 2010.09.02
플래시 기준으로 경로 맞추기  (0) 2010.06.23

Main.as 




package

{

import flash.display.Sprite;

public class Main extends Sprite

{

private var btn:TestBtn;

private var changeBtn:TestBtn;

public function Main()

{

btn = new TestBtn(0x0000ff);

btn.onClick = function():void

{

trace("A");

prevFunction = btn.onClick;

};

addChild(btn);

changeBtn = new TestBtn(0x00ffff);

changeBtn.onClick = changeSet;

addChild(changeBtn);

changeBtn.x = 100;

}

private var prevFunction:Function;

private var _isChange:Boolean;

private function changeSet():void

{

_isChange = !_isChange;

if(_isChange){

btn.onClick = function():void

{

trace("B");

};

}else{

btn.onClick = prevFunction;

prevFunction = null;

}

}

}

}














TestBtn



package

{

import flash.display.Sprite;

import flash.events.MouseEvent;

public class TestBtn extends Sprite

{

public function TestBtn( $color:uint )

{

super();

buttonMode = true;

graphics.beginFill( $color );

graphics.drawRect(0, 0, 50, 50);

graphics.endFill();

addEventListener( MouseEvent.CLICK, btnClick);

}

public var onClick:Function;

protected function btnClick(event:MouseEvent):void

{

if(onClick != null)

onClick();

}

}

}

'ActionScript3.0 > As3.0' 카테고리의 다른 글

localToGlobal  (0) 2013.03.14
Function 전달.  (0) 2013.03.06
FLV 재생의 원리.  (3) 2010.09.02
플래시 기준으로 경로 맞추기  (0) 2010.06.23
input 텍스트 박스, 파이어폭스에서 한글 깨짐 방지.  (0) 2010.06.17




Main.as 


package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class Main extends Sprite
{
public function Main()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
settingSet();
}
private function settingSet():void
{
var i:uint = 0;
var len:uint = 5;
var _color:int;
 
for(i; i<len; i++){
                                _color = Math.random() * 0xffffff;
 
var _item:Item = new Item(_color, i);
_item.addEventListener(ItemHandlerEvent.ITEM_CLICK_EVENT, itemClickHandler);
_item.x = 50 * i;
this.addChild(_item);
}
}
private function itemClickHandler (e:ItemHandlerEvent):void
{
var _num:Number = e.numSet;
trace(_num); // 0, 1, 2, 3, 4
}
}
}





Item.as


 package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Item extends Sprite
{
private var _color:int;
private var _i:uint;
public function Item($color:int, $i:uint)
{
super();
_color = $color;
_i = $i;
settingSet();
}
private function settingSet():void
{
name = "item" + _i;
graphics.beginFill(_color, 1);
graphics.drawRect(0, 0, 50, 50);
graphics.endFill();
buttonMode = true;
addEventListener(MouseEvent.CLICK, onClick);
}
protected function onClick(e:MouseEvent):void
{
var n:int = e.target.name.substr(4);
dispatchEvent(new ItemHandlerEvent(ItemHandlerEvent.ITEM_CLICK_EVENT, n));
}
}
}




ItemHandlerEvent.as

 
package
{
import flash.events.Event;
public class ItemHandlerEvent extends Event
{
static public const ITEM_CLICK_EVENT:String = "item_click_event";
private var _num:int;
public function ItemHandlerEvent(type:String, $num:int, bubbles:Boolean=false, cancelable:Boolean=false)
{
super(type, bubbles, cancelable);
_num = $num;
}
public function get numSet():int
{
return _num;
}
}




Main.as

package
{
import flash.display.Sprite;
import flash.display.StageAlign;
import flash.display.StageScaleMode;
public class Main extends Sprite
{
public function Main()
{
stage.scaleMode = StageScaleMode.NO_SCALE;
stage.align = StageAlign.TOP_LEFT;
settingSet();
}
private function settingSet():void
{
var _btn0:Item = new Btn0(0x000000);
this.addChild(_btn0);
var _btn1:Item = new Btn1(0x0000ff);
_btn1.x = 100;
this.addChild(_btn1);
}
}
}




Item.as

package
{
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Item extends Sprite
{
public function Item($color:uint)
{
graphics.beginFill($color, 1);
graphics.drawRect(0, 0, 100, 100);
alpha = 0.5;
buttonMode = true;
addEventListener(MouseEvent.ROLL_OVER, overHandler);
addEventListener(MouseEvent.ROLL_OUT, outHandler);
}
private function overHandler (e:MouseEvent):void
{
rollOverFrom();
}
private function outHandler (e:MouseEvent):void
{
rollOutFrom();
}
protected function rollOverFrom():void
{
trace("item.class rollOverFrom()");
}
protected function rollOutFrom():void
{
trace("item.class rollOutFrom()");
}
}
}
 

Btn0.as

 package
{
public class Btn0 extends Item
{
public function Btn0($color:uint)
{
super($color);
}
override protected function rollOverFrom():void
{
alpha = 1;
}
override protected function rollOutFrom():void
{
alpha = 0.5;
}
}
}



Btn1.as

 package
{
public class Btn1 extends Item
{
public function Btn1($color:uint)
{
super($color);
}
override protected function rollOverFrom():void
{
alpha = 1;
}
override protected function rollOutFrom():void
{
alpha = 0.5;
}
}
}


package
{
 
 import alternativa.engine3d.containers.ConflictContainer;
 import alternativa.engine3d.core.Camera3D;
 import alternativa.engine3d.core.View;
 import alternativa.engine3d.lights.DirectionalLight;
 import alternativa.engine3d.materials.FillMaterial;
 import alternativa.engine3d.materials.FlatShadingMaterial;
 import alternativa.engine3d.primitives.Box;
 import alternativa.engine3d.primitives.GeoSphere;
 
 import flash.display.BitmapData;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class Main extends Sprite
 {
  private var _container:ConflictContainer;
  
  private var _light:DirectionalLight;
  
  private var _material:FlatShadingMaterial;
  
  private var _box:Box;
  private var _circle:GeoSphere;
  private var _camera:Camera3D;
  private var _view:View;
  
  public function Main():void
  {
   _container = new ConflictContainer();
   
   _light = new DirectionalLight(0xffffff);
   
   _light.z = -400;
   _light.lookAt(0, 0, 0);
   
   _container.addChild(_light);
   
   _material = new FlatShadingMaterial(new BitmapData(10, 10, false, 0xffffff));
   
   _box = new Box(10, 10, 10);
   _box.setMaterialToAllFaces(new FillMaterial(0xff0000, 1, 1, 0x000000));
   _container.addChild(_box);
   
   _circle = new GeoSphere(100, 8);
   _circle.calculateVerticesNormals(true, 1);
   _circle.setMaterialToAllFaces(_material);
   
   _container.addChild(_circle);
   
   _camera = new Camera3D();
   _camera.z = -1000;
   _container.addChild(_camera);
   
   _view = new View(stage.stageWidth, stage.stageHeight);
   _camera.view = _view;
   
   this.addChild(_view);
   
   addEventListener(Event.ENTER_FRAME, onEnter);
  }
  
  private var r:Number = Math.PI / 90;
  private var i:uint = 0;
  
  private function onEnter(e:Event):void
  {
   _light.x = Math.sin(r * i) * 350;
   _light.z = Math.cos(r * i) * 350;
   _light.lookAt(0, 0, 0);
   
   _box.x = Math.sin(r * i)  * 350 + (_circle.x);
   _box.z = Math.cos(r * i) * 350 + (_circle.y);
   _box.y = (_circle.y);
   
   _circle.x = ((stage.stageWidth / 2) - mouseX) * ( -1);
   _circle.y = ((stage.stageHeight / 2) - mouseY) * ( -1);
   
   i++;
   
   _camera.render();
  }
 }
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_Camera3D  (0) 2011.10.13
Alternativa7_ConflictContainer  (0) 2011.10.13
Alterrnativa7_Plane(top, bottom)  (0) 2011.10.12
Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12


package 
{
import alternativa.engine3d.containers.ConflictContainer;
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.Box;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite 
{
private var _container:ConflictContainer;
private var _material:FillMaterial;
private var _box:Box;
private var _camera:Camera3D;
private var _camera2:Camera3D;
private var _view:View;
private var _view2:View;
public function Main():void 
{
_container = new ConflictContainer();
_material = new FillMaterial(0x000000, 1, 1, 0xff0000);
_box = new Box(50, 50, 50);
_box.setMaterialToAllFaces(_material);
_container.addChild(_box);
//------------------ Camera_1 ----------------------
_camera = new Camera3D();
_camera.z = -300;
_view = new View(300, 300);
_camera.view = _view;
_container.addChild(_camera);
this.addChild(_view);
//------------------ Camera_2 -----------------------
_camera2 = new Camera3D();
_camera2.z = 300;
_camera2.rotationZ = 90 * Math.PI / 180;
_camera2.rotationX = 180 * Math.PI / 180;
_view2 = new View(300, 300);
_view2.x = 300;
_camera2.view = _view2;
_container.addChild(_camera2);
this.addChild(_view2);
//-----------------------------------------------
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(e:Event):void 
{
_camera.render();
_camera2.render();
_box.rotationY += 0.05;
_box.z = ((stage.stageWidth / 2) - mouseX) / 2;
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_FlatShadingMaterial;  (0) 2011.10.13
Alternativa7_ConflictContainer  (0) 2011.10.13
Alterrnativa7_Plane(top, bottom)  (0) 2011.10.12
Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12




 

package
{
 
 import alternativa.engine3d.containers.ConflictContainer;
 import alternativa.engine3d.core.Camera3D;
 import alternativa.engine3d.core.View;
 import alternativa.engine3d.materials.FillMaterial;
 import alternativa.engine3d.primitives.Box;

 import flash.display.Sprite;
 import flash.events.Event;
 
 public class Main extends Sprite
 {
  
  private var _container:ConflictContainer;
  
  private var _box:Box;
  private var _material:FillMaterial;
  private var _camera:Camera3D;
  
  private var _view:View;
  
  public function Main():void
  {
   _container = new ConflictContainer();
   _material = new FillMaterial(0x000000, 1, 1, 0xff0000);
   
   var _posW:Array = [50, 50, 50];
   var _posH:Array = [50, 100, 50];
   var _posI:Array = [50, 50, 50];
   var _posZ:Array = [0, 100, 0];
   
   var i:uint = 0;
   var len:uint = 3;
   
   for (i; i < len; i++) {
    _box = new Box(_posW[i], _posH[i], _posI[i]);
    _box.x = -55 + (55 * i);
    _box.z = _posZ[i];
    _box.setMaterialToAllFaces(_material);
    
    _container.addChild(_box);
   }
   
   _camera = new Camera3D();
   _camera.z = -300;
   
   _container.addChild(_camera);
   
   _view = new View(stage.stageWidth, stage.stageHeight);
   _camera.view = _view;
   this.addChild(_view);
   
   addEventListener(Event.ENTER_FRAME, onEnter);
  }
  
  private function onEnter(e:Event):void
  {
   _camera.x = ((stage.stageWidth / 2) - mouseX) / 2;
   _camera.y = ((stage.stageHeight / 2) - mouseY) / 2;
   
   _camera.render();
  }
 }
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_FlatShadingMaterial;  (0) 2011.10.13
Alternativa7_Camera3D  (0) 2011.10.13
Alterrnativa7_Plane(top, bottom)  (0) 2011.10.12
Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12

package 
{
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.Plane;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite 
{
private var _container:Object3DContainer;
private var _camera:Camera3D;
private var _view:View;
private var _plane:Plane;
public function Main():void 
{
_container = new Object3DContainer();
var _material:FillMaterial = new FillMaterial(0xffffff, 0.05, 1, 0xffffff);
_plane = new Plane(100, 150, 1, 1, true, false, false, new FillMaterial(0x00ff00, 1, 1, 0x000000), new FillMaterial(0x00ffff, 1, 1, 0x000000));
_container.addChild(_plane);
_camera = new Camera3D();
_camera.z = -300;
_container.addChild(_camera);
_view = new View(stage.stageWidth, stage.stageHeight);
_camera.view = _view;
this.addChild(_view);
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(e:Event):void 
{
_camera.render();
_plane.rotationY += 0.05;
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_Camera3D  (0) 2011.10.13
Alternativa7_ConflictContainer  (0) 2011.10.13
Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12
Alternativa7_GeoSphere();  (0) 2011.10.12

package 
{
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.MouseEvent3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.materials.TextureMaterial;
import alternativa.engine3d.primitives.Box;
import flash.display.Sprite;
import flash.events.Event;
import flash.filters.GlowFilter;
public class Main extends Sprite 
{
private var _container:Object3DContainer;
private var _box:Box;
private var _camera:Camera3D;
private var _view:View;
public function Main():void 
{
_container = new Object3DContainer();
var _material:FillMaterial = new FillMaterial(0xffffff, 0.05, 1, 0xffffff);
_box = new Box(130, 130, 130);
_box.setMaterialToAllFaces(_material);
_box.rotationX = 90 * Math.PI / 180;
_container.addChild(_box);
_camera = new Camera3D();
_camera.z = -300;
_container.addChild(_camera);
_view = new View(stage.stageWidth, stage.stageHeight);
_camera.view = _view;
this.addChild(_view);
_box.addEventListener(MouseEvent3D.ROLL_OVER, changeColor);
_box.addEventListener(MouseEvent3D.ROLL_OUT, boxOut);
_box.addEventListener(MouseEvent3D.CLICK, changeColor);
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function changeColor(e:MouseEvent3D):void 
{
e.target.filters = [new GlowFilter(Math.random() * 0xffffff, 1, 5, 5, 5)];
}
private function boxOut(e:MouseEvent3D):void 
{
e.target.filters = null;
}
private function onEnter(e:Event):void 
{
_box.rotationX += 0.05;
_box.rotationY += 0.05;
_camera.render();
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_ConflictContainer  (0) 2011.10.13
Alterrnativa7_Plane(top, bottom)  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12
Alternativa7_GeoSphere();  (0) 2011.10.12
Alternativa7_Sphere();  (0) 2011.10.12



package 
{
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.TextureMaterial;
import alternativa.engine3d.primitives.Box;
import flash.display.Bitmap;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite 
{
private var _container:Object3DContainer;
private var _box:Box;
private var _camera:Camera3D;
private var _view:View;
[Embed(source = 'sample.jpg')]
private var Sample:Class;
public function Main():void 
{
var _image:Bitmap = new Sample();
_container = new Object3DContainer();
var _material:TextureMaterial = new TextureMaterial(_image.bitmapData);
_box = new Box(100, 100, 100);
_box.setMaterialToAllFaces(_material);
_container.addChild(_box);
_camera = new Camera3D();
_camera.z = -300;
_container.addChild(_camera);
_view = new View(stage.stageWidth, stage.stageHeight);
_camera.view = _view;
this.addChild(_view);
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(e:Event):void 
{
_camera.render();
_box.rotationX += 0.05;
_box.rotationY += 0.05;
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alterrnativa7_Plane(top, bottom)  (0) 2011.10.12
Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_GeoSphere();  (0) 2011.10.12
Alternativa7_Sphere();  (0) 2011.10.12
Alternativa7_Plane();  (0) 2011.10.12

package 
{
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.GeoSphere;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite 
{
private var _container:Object3DContainer;
private var _geoSphere:GeoSphere;
private var _material:FillMaterial;
private var _camera:Camera3D;
private var _view:View;
public function Main():void 
{
_container = new Object3DContainer();
_material = new FillMaterial(0x000000, 1, 1, 0xffffff);
_geoSphere = new GeoSphere(100, 8);
_geoSphere.setMaterialToAllFaces(_material);
_container.addChild(_geoSphere);
_camera = new Camera3D();
_camera.z = -300;
_container.addChild(_camera);
_view = new View(stage.stageWidth, stage.stageHeight);
_camera.view = _view;
this.addChild(_view);
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(e:Event):void 
{
_camera.render();
_geoSphere.rotationX += 0.01;
_geoSphere.rotationY += 0.01;
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12
Alternativa7_Sphere();  (0) 2011.10.12
Alternativa7_Plane();  (0) 2011.10.12
Alternativa7_Box();  (0) 2011.10.12

package 
{
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.Sphere;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite 
{
private var _container:Object3DContainer;
private var _sphere:Sphere;
private var _material:FillMaterial;
private var _camera:Camera3D;
private var _view:View;
public function Main():void 
{
_container = new Object3DContainer();
_material = new FillMaterial(0xff0000, 0, 1, 0xffffff);
_sphere = new Sphere(100);
_sphere.setMaterialToAllFaces(_material);
_container.addChild(_sphere);
_camera = new Camera3D();
_camera.z = -300;
_container.addChild(_camera);
_view = new View(stage.stageWidth, stage.stageHeight);
_camera.view = _view;
this.addChild(_view);
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(e:Event):void 
{
_camera.render();
_sphere.rotationX += 0.05;
_sphere.rotationY += 0.05;
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12
Alternativa7_GeoSphere();  (0) 2011.10.12
Alternativa7_Plane();  (0) 2011.10.12
Alternativa7_Box();  (0) 2011.10.12

package 
{
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.Plane;
import flash.display.Sprite;
import flash.events.Event;
public class Main extends Sprite 
{
private var _container:Object3DContainer;
private var _plane:Plane;
private var _material:FillMaterial;
private var _camera:Camera3D;
private var _view:View;
public function Main():void 
{
_container = new Object3DContainer();
_camera = new Camera3D();
_camera.z = -300;
_container.addChild(_camera);
_material = new FillMaterial(0xff0000, 0, 1, 0xffffff);
_plane = new Plane(100, 200);
_plane.setMaterialToAllFaces(_material);
_container.addChild(_plane);
_view = new View(stage.stageWidth, stage.stageHeight);
_camera.view = _view;
this.addChild(_view);
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(e:Event):void 
{
_camera.render();
_plane.rotationY += 0.05;
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12
Alternativa7_GeoSphere();  (0) 2011.10.12
Alternativa7_Sphere();  (0) 2011.10.12
Alternativa7_Box();  (0) 2011.10.12



package 
{
import flash.display.Sprite;
import flash.events.Event;
import alternativa.engine3d.core.Camera3D;
import alternativa.engine3d.core.Object3DContainer;
import alternativa.engine3d.core.View;
import alternativa.engine3d.materials.FillMaterial;
import alternativa.engine3d.primitives.Box;
public class Main extends Sprite 
{
private var _container:Object3DContainer;
private var _box:Box;
private var _material:FillMaterial;
private var _camera:Camera3D;
private var _view:View;
public function Main():void 
{
_container = new Object3DContainer();
_box = new Box(100, 100, 100);
_container.addChild(_box);
_material = new FillMaterial(0xff0000, 0, 1, 0xffffff);
_box.setMaterialToAllFaces(_material);
_camera = new Camera3D();
_camera.z = -300;
_container.addChild(_camera);
_view = new View(stage.stageWidth, stage.stageHeight);
_camera.view = _view;
addChild(_view);
addEventListener(Event.ENTER_FRAME, onEnter);
}
private function onEnter(e:Event):void 
{
_box.rotationX += 0.02;
_box.rotationY += 0.05;
_camera.render();
}
}
}

'ActionScript3.0 > Alternativa3D_7' 카테고리의 다른 글

Alternativa7_MouseEvent3D  (0) 2011.10.12
Alternativa7_TextureMaterial();  (0) 2011.10.12
Alternativa7_GeoSphere();  (0) 2011.10.12
Alternativa7_Sphere();  (0) 2011.10.12
Alternativa7_Plane();  (0) 2011.10.12
package com.zeronine.basicCylineder
{
 import away3d.containers.View3D;
 import away3d.materials.WireframeMaterial;
 import away3d.primitives.Cylinder;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class BasicCylineder extends Sprite
 {
  private var _view:View3D;
  private var _cylineder:Cylinder;
 
  public function BasicCylineder()
  {
   viewSet();
  }
 
  private function viewSet():void
  {
   _view = new View3D();
   _view.x = stage.stageWidth / 2;
   _view.y = stage.stageHeight / 2;
   
   this.addChild(_view);
   
   addEventListener(Event.ENTER_FRAME, engine);
   
   cylinederSet();
  }
 
  private function cylinederSet():void
  {
   _cylineder = new Cylinder();
   _cylineder.material = new WireframeMaterial(0xff0000);
   
   _cylineder.radius = 60;
   _cylineder.height = 130;
   
   _cylineder.segmentsW = 10;
   _cylineder.segmentsH = 5;
   
   _view.scene.addChild(_cylineder);
  }
 
  private function engine(e:Event):void
  {
   _view.render();
   _cylineder.rotationY += 3;
  }
 }
}





'ActionScript3.0 > Away3d 3' 카테고리의 다른 글

Away3d_Cube();  (0) 2010.11.29
Away3d_Cone();  (0) 2010.11.29
Away3d_Plane();  (0) 2010.11.29
Away3d_Sphere();  (0) 2010.11.29
Away3d _ view3D();  (0) 2010.11.29
package com.zeronine.basicCube
{
 import away3d.containers.View3D;
 import away3d.materials.WireframeMaterial;
 import away3d.primitives.Cube;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class BasicCube extends Sprite
 {
  private var _view:View3D;
  private var _cube:Cube;
 
  public function BasicCube()
  {
   viewSet();
  }
 
  private function viewSet():void
  {
   _view = new View3D();
   _view.x = stage.stageWidth / 2;
   _view.y = stage.stageHeight / 2;
   
   this.addChild(_view);
   
   addEventListener(Event.ENTER_FRAME, engine);
   cubeSet();
  }
 
  private function cubeSet():void
  {
   _cube = new Cube();
   _cube.material = new WireframeMaterial(0xff0000);
   
   _cube.width = 100;
   _cube.height = 100;
   _cube.depth = 100;
   
   _view.scene.addChild(_cube);
  }
 
  private function engine(e:Event):void
  {
   _view.render();
   _cube.rotationY += 2;
   _cube.rotationX += 2;
  }
 }
}




'ActionScript3.0 > Away3d 3' 카테고리의 다른 글

Away3d_Cylineder();  (0) 2010.11.29
Away3d_Cone();  (0) 2010.11.29
Away3d_Plane();  (0) 2010.11.29
Away3d_Sphere();  (0) 2010.11.29
Away3d _ view3D();  (0) 2010.11.29
package com.zeronine.basicCone
{
 import away3d.containers.View3D;
 import away3d.materials.WireframeMaterial;
 import away3d.primitives.Cone;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class BasicCone extends Sprite
 {
  private var _view:View3D;
  private var _cone:Cone;
  public function BasicCone()
  {
   viewSet();
  }
 
  private function viewSet():void
  {
   _view = new View3D();
   _view.x = stage.stageWidth / 2;
   _view.y = stage.stageHeight / 2;
   
   this.addChild(_view);
   this.addEventListener(Event.ENTER_FRAME, engine);
   
   coneSet();
  }
 
  private function coneSet():void
  {
   _cone = new Cone();
   _cone.material = new WireframeMaterial(0xff0000);
   
   _cone.radius = 80;
   _cone.height = 150;
   
   _view.scene.addChild(_cone);
  }
 
  private function engine(e:Event):void
  {
   _view.render();
   _cone.rotationY += 2;
  }
 }
}




'ActionScript3.0 > Away3d 3' 카테고리의 다른 글

Away3d_Cylineder();  (0) 2010.11.29
Away3d_Cube();  (0) 2010.11.29
Away3d_Plane();  (0) 2010.11.29
Away3d_Sphere();  (0) 2010.11.29
Away3d _ view3D();  (0) 2010.11.29
package com.zeronine.basicPlane
{
 import away3d.containers.View3D;
 import away3d.core.utils.Color;
 import away3d.materials.ColorMaterial;
 import away3d.primitives.Plane;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class BasicPlane extends Sprite
 {
  private var _view:View3D;
  private var _plane:Plane;
  public function BasicPlane()
  {
   viewSet();
   objectSet();
  }
 
  private function objectSet():void
  {
   _plane = new Plane();
   _plane.bothsides = true;
   _plane.yUp = false;
   _plane.material = new ColorMaterial(0xff0000);
   _plane.back = new ColorMaterial(0xff00ff);
   
   _plane.width = 100;
   _plane.height = 150;
   
   _view.scene.addChild(_plane);
  }
 
  private function viewSet():void
  {
   _view = new View3D();
   _view.x = stage.stageWidth / 2;
   _view.y = stage.stageHeight / 2;
   
   this.addChild(_view);
   addEventListener(Event.ENTER_FRAME, engine);
  }
 
  private function engine(e:Event):void
  {
   _view.render();
   _plane.rotationY += 2;
  }
 }
}





 

'ActionScript3.0 > Away3d 3' 카테고리의 다른 글

Away3d_Cylineder();  (0) 2010.11.29
Away3d_Cube();  (0) 2010.11.29
Away3d_Cone();  (0) 2010.11.29
Away3d_Sphere();  (0) 2010.11.29
Away3d _ view3D();  (0) 2010.11.29
package com.zeronine.basicSphere
{
 import away3d.containers.View3D;
 import away3d.materials.ColorMaterial;
 import away3d.materials.WireColorMaterial;
 import away3d.primitives.Sphere;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class BasicSphere extends Sprite
 {
  private var _view:View3D;
  private var _basicSphere:Sphere;
 
  public function BasicSphere()
  {
   viewSet();
   objectSet();
  }
 
  private function objectSet():void
  {
   _basicSphere = new Sphere();
   _basicSphere.radius = 100;
   
   _basicSphere.material = new WireColorMaterial(0xff0000);
   _view.scene.addChild(_basicSphere);
  }
 
  private function viewSet():void
  {
   _view = new View3D();
   _view.x = stage.stageWidth / 2;
   _view.y = stage.stageHeight / 2;
   
   this.addChild(_view);
   
   addEventListener(Event.ENTER_FRAME, engine);
  }
 
  private function engine(e:Event):void
  {
   _view.render();
   _basicSphere.rotationY += 2;
  }
 }
}





'ActionScript3.0 > Away3d 3' 카테고리의 다른 글

Away3d_Cylineder();  (0) 2010.11.29
Away3d_Cube();  (0) 2010.11.29
Away3d_Cone();  (0) 2010.11.29
Away3d_Plane();  (0) 2010.11.29
Away3d _ view3D();  (0) 2010.11.29

Away3d (기본 셋팅)
3D 공간을 만든다.




package com.zeronine.basicView
{
 import away3d.containers.View3D;
 import away3d.materials.ColorMaterial;
 import away3d.primitives.Plane;
 import flash.display.Sprite;
 import flash.events.Event;
 
 public class Main extends Sprite
 {
  private var _view:View3D;
  public function Main():void
  {
   if (stage) init();
   else addEventListener(Event.ADDED_TO_STAGE, init);
  }
 
  private function init(e:Event = null):void
  {
   removeEventListener(Event.ADDED_TO_STAGE, init);
   viewSettingSet();
  }
 
  private function viewSettingSet():void
  {
   _view = new View3D();
   _view.x = stage.stageWidth / 2;
   _view.y = stage.stageHeight / 2;
   
   this.addChild(_view);
   
   addEventListener(Event.ENTER_FRAME, engine);
  }
 
  private function engine(e:Event):void
  {
   _view.render();
  }
 }
}




papervision3d 와 달리 away3d는 기본 위치값이 x:0, y:0 이다.
하지만 만들어지는 primitives들의 기본 x값과 y값은 width, height 값의 중심측에 위치하게
된다.

만들어지는 primitives 객체를 stage의 정 중앙으로 위치하고싶다면
_view의 위치를 stage의 중앙으로 배치한후
_view.scene에 addChild 하면 된다.

'ActionScript3.0 > Away3d 3' 카테고리의 다른 글

Away3d_Cylineder();  (0) 2010.11.29
Away3d_Cube();  (0) 2010.11.29
Away3d_Cone();  (0) 2010.11.29
Away3d_Plane();  (0) 2010.11.29
Away3d_Sphere();  (0) 2010.11.29
몇일전 flv 컨트롤에 대해서 문제점이 생겨, 요래조래 질문하다가.
[ 우야꼬 ] 행님의 좋은 말씀이 있어, 올립니다.

다시 한번 감사드립니다(__); 쵝오!
(저에게 전하는 말이라, 글이 반말입니다 그냥 읽어주시길...);


-FLV 재생 원리-




동영상이라는 것 자체가 한장한장의 이미지가

연속으로 보여지는 것인데

그렇게 되면 너무 용량이 커지기 때문에

용량을 줄이는 방법들이 고안되었고

여러가지 동영상 압축 기술들이 나왔는데

그 압축 기술대로 동영상을 재생해주는 모듈을 [ 코덱 ] 이라고 한다.

기본적으로 동영상 압축에는

"공간 압축" 과 "시간 압축" 이라는 두가지 기법이 쓰인다.

[ 공간 압축 ]


빨강, 빨강
빨강, 하양

이라는 그림이 있으면 바로 전 픽셀에 대해서 변화되는 양만 기록하는 기법이다.

앞에것도 빨강(0xFF)고 그 다음 칼라도 빨강(0xFF)면 변화되는 값이 없기 때문에

0xFF, 0 이라고 적으면

코덱은 바로 전 픽셀에 차례차례 나오는 변화량만 기록한다.

빨강, 0
0, 하양

이라고 표현할 수 있다.

조금더 쉽게 숫자로 표현하자면

130, 131, 131, 132 라는 숫자가 있으면

총 12자리의 숫자가 필요할테지만

변화량으로 기록하게 되면

130, 1, 0, 1 로 기록 할 수 한다.

그렇게 되면 필요한 자리수는 총 6개가 되니까 압축률은 50%가 된다.

이 기법은 동영상이 아니라 사실 JPEG 압축기술이다.

즉, 한장의 이미지에서 한 픽셀 픽셀의 모든 컬러값을 적는게 아니라 변화되는 변화량만 적는 기법이라서

한번에 한 장면에 있는 이미지를 압축하기 때문에 "공간" 압축이라고 한다.




[ 시간 압축 ]

이 공간 압축에 한 차원을 더하는건데

총알이 움직이는 사진이 있다고하면

첫번째 사진에는 총알이 왼쪽에 있다가 두번째 사진에는 총알이 중간쯤 가 있겠다고 하자.

그러면 사진 윗부분이나 아랫부분, 오른쪽 부분은

첫번째 사진이나 두번째 사진이나 똑같으니, 변화되는것이 극히 적기 때문에

첫번째 사진은 그 사진 그대로 기록을 하고

두번째 사진은 첫번째 사진에서 변화되는 것만 기록한다.

그래서 이걸 "시간 압축 "이라고 한다.





그러면 FLV가 어떤 구조로 되어 있는지 간단하게 설명해볼께

FLV는 기본적으로 일정한 간격으로 동영상이 덩이 덩이로 나뉘어있다.

예를 들어 10초짜리 동영상이라면 하나의 덩이로도 이뤄져있을 수 있는데

1시간 짜리라면 100개나 200개의 덩이로도 나뉘어있을 수 있다.

덩어리에 이뤄져있는 구조는

덩이의 제일 첫번째에는 JPEG 이미지가 들어가있어.

그리고 그 다음부터 나오는 정보들은 앞에서 말한 "시간 압축" 으로

이 이미지에서 변화되는 변화량만 적혀있다.

아마 동영상 보다보면

이런 경험한적 있을것이다.

동영상을 건너뛰어서 보려고 진행률 뒷부분을 클릭해서 보면

지금보던 장면이 이상하게 꿈틀거리면서 뒤틀리다가 갑자기 제대로 동영상이 나오는 현상.

이 현상이 바로 시간 압축때문에 일어나는 현상이다.

즉 10초부분에 있는 덩이의 첫 이미지를 기준으로 변화량을 적용해서 동영상을 재생하고 있었는데

갑자기 뒤로 건너뛰면 10초대에 있던 첫이미지를 기준으로 현재의 변화량을 측정하니까

이상한 이미지가 나와버리는 것이다.

아무튼 한 덩이의 제일 첫 이미지를

i-frame이라고 부르고,

그리고 그 다음에 나오는 변화량들을 b-frame(맞는지 모르겠음;;)이라고 부르는데,


즉 재생하는 원리가 파일을 읽어들이면서 i-frame이 나오면

그걸 저장하고 있다가 그 뒤에 나오는 b-frame을 가지고 i-frame의 이미지를 컨트롤 하는 방식이다.

그래서 동영상을 앞으로 재생하면 그 덩이의 첫 i-frame을 가져오기가 수월한데

뒤로 재생하면 frame을 찾는 헤더 자체가 거꾸로 움직여야되기 때문에

i-frame을 잘 못찾는 거지.

사실 코덱을 좀 더 정밀하게 컨트롤하면 되긴 하는데

그게 우리 맘대로 다룰 수 있는게 아니기 때문에 힘든거지.



나중에 기회되면 H.264/AVC 코덱 관련된 기술같은거 찾아보면

진짜 도움 많이 될거야.

프로그래밍이 아니라 정말 컴퓨팅에 대한 새로운 세상이 열릴거라고 생각해 ㅎㅎ

나중에 PFG 세미나때 짬내서 한번 설명다시 해볼께.

이해 안가면 전화해라 ㅋㅋ


'ActionScript3.0 > As3.0' 카테고리의 다른 글

Function 전달.  (0) 2013.03.06
Function 참조.  (0) 2013.03.04
플래시 기준으로 경로 맞추기  (0) 2010.06.23
input 텍스트 박스, 파이어폭스에서 한글 깨짐 방지.  (0) 2010.06.17
lineTo(), moveTo()  (1) 2010.02.12

'ActionScript3.0 > Papervision3D' 카테고리의 다른 글

3D gallery  (0) 2010.08.18
Papervision3D _ rotationY  (0) 2010.06.21
rotationX, rotationY  (0) 2010.06.17
Papervision3D - rotationX, rotationY  (0) 2010.06.17
태그 모션  (0) 2010.06.16

'ActionScript3.0 > Papervision3D' 카테고리의 다른 글

MovieMaterial  (0) 2010.08.18
Papervision3D _ rotationY  (0) 2010.06.21
rotationX, rotationY  (0) 2010.06.17
Papervision3D - rotationX, rotationY  (0) 2010.06.17
태그 모션  (0) 2010.06.16



   //-------- 일반 방법;
   var test2:Sprite = new Sprite();
   test2.graphics.beginFill(0x00ffff, 1);
   test2.graphics.drawRect(0, 0, 50, 50);
   test2.graphics.endFill();
   
   this.addChild(test2);
   
   test2.x = 200;
   test2.y = 100;
   //------------------------------------
   
   
   
   //--------- with 문;
   var test1:Sprite = new Sprite();
   with (this.addChild(test1)) {
    graphics.beginFill(0x000000, 1), graphics.drawRect(0, 0, 50, 50), graphics.endFill();
   
    x = y = 100;
   //------------------------------------



'ActionScript3.0 > 기초' 카테고리의 다른 글

continue, break, return  (0) 2013.05.29
TextInput 에 마스크 먹이기~  (0) 2010.06.22
텍스트 필드에 포커스 이동하기.  (0) 2010.04.15
TimerEvent()  (0) 2010.03.19
Math.random(), TweenMax.DropShadowFilter  (0) 2010.02.09




<param name='base' value='.' />


서버에 플래시를 올릴때,

플래시 기준으로 경로를 설정할수있게 해준다.

'ActionScript3.0 > As3.0' 카테고리의 다른 글

Function 참조.  (0) 2013.03.04
FLV 재생의 원리.  (3) 2010.09.02
input 텍스트 박스, 파이어폭스에서 한글 깨짐 방지.  (0) 2010.06.17
lineTo(), moveTo()  (1) 2010.02.12
Math.PI, Math.cos, Math.sin  (0) 2010.01.28

+ Recent posts