Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Info

PSCOCOS 소개

HTML5의 애니메이션을 컨트롤하는 라이브러리이며

다음과 같은 목표를 가지고 제작되었습니다.

  • 라이브러리가 라이트 해야한다(min버젼일경우 200k미만)
  • 이미 만들어진 사이트에, 추가하기위해 설정이 쉬워야 한다.
  • Jquery를 사용하여 CSS 애니메이션을 제어하는것처럼 쉽고 강력해야 한다.


IE6점유율이 높았을 시점 아주오래전 제작된것이라, 캔버스를 다루는 더 최적화된

라이브러리가 많을것으로보이며 보이며, 자바스크립트를 연구하면서 작성된 라이브러리입니다.

호환성및 성능좋은 Canvas를 사용하려면 lime.js 와 같은 안정된 해외 오픈소스를 권장합니다.


var img2 = cocoApp.addImage('assets/frogy1.png', 120,100, false);
img2.moveTo({x:495,y:122,duration:3,angle:5 });

pscocos는 단지 위와같은 특징은 위와같이 단두줄의 코드로 가속이 적용된 애니메이션코드를 작동시킬수 있다란것입니다.

6년전(2014) JS를 학습하면서 작성한 코드로 퀄리티에대한 태클은 금지합니다. 


소스위치 : https://github.com/psmon/html5canvaslib
원본위치 : http://psmon.x-y.net/pscoco/sample.html


데모화면


위키내에서 작동화면을 보고싶다면 PC로 접속해주세요
http://wiki.webnori.com/display/codesniper/pscocos

모바일확인가능 페이지: 조금더 다양한 샘플이 준비되어있습니다.

http://psmon.x-y.net/pscoco/sample.html

...

Code Block
languagejs
themeEmacs
var img2 = cocoApp.addImage('assets/ball1.png', 120,100, false);
img2.seqTo([
	{x:100,y:122,duration:0.3,angle:5 },
	{x:250,y:50,duration:0.3,angle:45 },
	{x:300,y:300,duration:0.3,angle:90 ,opacity:50,scale:0.5}
]);

...

Code Block
languagejs
themeEmacs
for(var i=0 ; i< 10 ; i++){
	_demoRefCount++;
	var frogAni = new SpriteAnimation({fileName:"assets/ani/flog/frogy",width:700,height:1000,frameCount:15,scale:0.3,repeat:false ,oneDelay:0.03 * (i+1) });
	frogAni.position.x=70 * i;
	frogAni.position.y=150;
	cocoApp.addChild(frogAni,"frog"+ _demoRefCount );
	frogAni.play();
}

가장 고전적이고 , 2D애니메이션에 여전히 활용이되고있는

여러장의 이미지를 넘기는 방식입니다.

...

Code Block
languagejs
themeEmacs
var canvasWidth=600;
var canvasHeight=480;
for(var i=0;i<100;i++){
	var ballImg = cocoApp.addImage('assets/greencircle.png',0,-10,false);
	ballImg.position.x = Math.round(Math.random() * canvasWidth );
	ballImg.position.y = Math.round(Math.random() * canvasHeight );
	ballImg.drift = Math.random();
	ballImg.speed = Math.round(Math.random() * 5) + 1;
	ballImg.addSchedule({method:function(){
	this.speed = Math.round(Math.random() * 3) + 1;
	if(this.position.y <= canvasHeight){
	this.position.y = this.position.y+this.speed;
	if(this.position.y > canvasHeight){
		this.position.y = -5;
	}
	this.position.x+=this.drift;
	if(this.position.x > canvasWidth){
		this.position.x=0
	}
}
	},target:ballImg,interval:0,paused:false});
}

...