avg-core-ts
Version:
Develop Adventure Game (or ADV, Visual Novel, Galgame, etc.) on your own!
46 lines (37 loc) • 1.19 kB
JSX
/**
* @file Container component
* @author MicroMatrix <yangpan.1985@bytedance.com>
* @copyright 2012-2020 bytedance
* @link git@code.byted.org:yangpan.1985/avg.git
*/
import React from 'react';
import createComponent from 'components/createComponent';
import ContainerMixin from 'components/ContainerMixin';
import NodeMixin from 'components/NodeMixin';
import PixiContainer from 'classes/Sprite';
import pixiPropTypes from './pixi/propTypes';
const RawContainer = createComponent('RawContainer', ContainerMixin, NodeMixin, {
createNode() {
this.node = new PixiContainer();
},
mountNode(props) {
// color, opacity, width, height, x, y, etc.
const layer = this.node;
layer.x = props.x || 0;
layer.y = props.y || 0;
layer.alpha = props.opactiy || 1;
return layer;
},
updateNode(prevProps, props) {
const layer = this.node;
layer.x = props.x || 0;
layer.y = props.y || 0;
layer.alpha = props.opactiy || 1;
},
});
export class Container extends React.PureComponent {
static propTypes = pixiPropTypes;
render() {
return React.createElement(RawContainer, this.props, this.props.children);
}
}