저는 Easeljs, David Rousset 및 Lee Brimelow의 두 가지 자습서를 보았습니다. 어떤 것이 더 사용하기 좋은지, 그 차이점은 무엇인지 잘 모르겠습니다. 예 1 (데이빗 루셋) :Easeljs 패턴 - 차이점을 설명하십시오.
(function (window) {
function Player(imgPlayer, x_start, x_end) {
this.initialize(imgPlayer, x_start, x_end);
}
Player.prototype = new createjs.BitmapAnimation();
// public properties:
Player.prototype.alive = true;
// constructor:
Player.prototype.BitmapAnimation_initialize = Player.prototype.initialize; //unique to avoid overiding base class
var quaterFrameSize;
Player.prototype.initialize = function (imgPlayer, x_end) {
var localSpriteSheet = new createjs.SpriteSheet({
images: [imgPlayer], //image to use
frames: { width:64, height:64, regX:32, regY: 32 },
animations: {
walk: [0, 9, "walk", 4]
}
});
createjs.SpriteSheetUtils.addFlippedFrames(localSpriteSheet, true, false, false);
this.BitmapAnimation_initialize(localSpriteSheet);
this.x_end = x_end;
quaterFrameSize = this.spriteSheet.getFrame(0).rect.width/4;
// start playing the first sequence:
this.gotoAndPlay("idle"); //animate
this.isInIdleMode = true;
}
Player.prototype.tick = function() {
//specific tick function for the player
}
window.Player = Player;
} (window));
및 실시 예 2 (리 Brimelow) : 하나는 BitmapAnimation 한 단지 기본 비트 맵을 사용하여 그냥 ingnore
(function(window) {
function Player(){
// Adding the easeljs bitmap as a property of Player:
this.view = new createjs.Bitmap("assets/pics/player1.png")
// Setting som local parameters
var height = stage.canvas.height;
var width = stage.canvas.width;
var playerRadius = 70;
var offset = 200;
var x = 0;
var y = 0;
this.view.regX = this.view.regY = playerRadius;
// Adding the tickfunction below
this.view.onTick = tick;
}
function tick(e) {
//
}
window.Player = Player;
})(window);
. 예 1에서
:
Player.prototype.alive = true;
과 :
this.alive = true;
2) 기능 :
Player.prototype.BitmapAnimation_initialize = Player.prototype.initialize; //unique to avoid overiding base class
을
1)이 라인을 교체 동일시겠습니까
내가 이해할 수없는 com
Player.prototype = new createjs.BitmapAnimation();
나는 새로운 플레이어()
4 예 1에서 실행될 때 실제로 어떻게되는지 확실하지 않다 :, 표준 ...
3)이 라인은 initilize 기능을 시작에 추가) 플레이어의 속성으로 틱을 설정하면 주 틱 기능에서이 틱 기능을 호출해야합니다. easljs에서 Ticker 클래스의 inTilt onTick 이벤트 처리기를 사용하는 것이 더 낫지는 않습니다 (예제 2에서와 같이) ?
위의 패턴 중 "우수 사례"와 그 이유는 무엇입니까?
또한이 두 패턴은 Player 객체를 만드는 main.js에 종속됩니다 (Player 객체는 윈도우의 속성으로 설정 됨). 전역 범위에서 모든 것을 유지하거나 예를 들어 node.js에서이 코드를 사용할 수있게하려면 유사한 문제에서 main.js를 객체로 래핑하는 것이 좋을 것입니다. 창 대신 함수에 대한 매개 변수?
Main = {
init: function() {
//set up and create Player
var player = new Player;
},
//then adding som properties, variables to Main... for instance
propA: 0
}
이 feasable /이 가능 :
은이 주요 JS을 말할 수 있습니다? 두 패턴 사이
개인 취향입니다. 당신이 이해하고 좋아하는 것을 골라 내고 좋아하십시오. 나는 그것이 너무 광범위하고 답변에 대한 구체적인 사실 이라기보다는 주로 의견이 될 것이기 때문에 투표를 끝내겠다고 투표하고 있습니다. – WiredPrairie