рд╣рд╛рдВ, рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ рдХреЛ рджреЗрдЦрд╛: #4341, #4002, #3476
рдореИрдВ рдЯреЗрдХреНрд╕реНрдЯ рдХрд╛ рдПрдХ рдЯреБрдХрдбрд╝рд╛ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдЗрд╕реЗ рд╕реНрдХреНрд░реАрди рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ, рдлрд┐рд░ рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рджрд╛рдИрдВ рдУрд░ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░рддреЗ рд╣реБрдП рдЕрдкрдбреЗрдЯ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
anchor.x = 1
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░рд╛ рдкрд╣рд▓рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
https://jsfiddle.net/r63ud8yL/1/
const app = new PIXI.Application({resizeTo: document.body, backgroundColor: 0xFFFFFF})
document.body.append(app.view)
// Forcing app.stage to occupy width of screen
// Is there a better way to do this?
const neCorner = new PIXI.Sprite()
neCorner.x = 0
neCorner.y = 0
const swCorner = new PIXI.Sprite()
swCorner.x = document.body.clientWidth
swCorner.y = document.body.clientHeight
app.stage.addChild(neCorner, swCorner)
const text = new PIXI.Text('first')
app.stage.addChild(text)
text.anchor.x = 1
// Align text to right edge
text.x = app.stage.width
// Replacing text with a longer string
text.text = 'second'
// It extends past the edge of the window; only 'sec' is visible
(stage.width - text.width)
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрд░рд╛ рджреВрд╕рд░рд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдпрд╣рд╛рдВ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдПрдХ рд╣реА рдкрд░рд┐рдгрд╛рдо рд╣реИ:
https://jsfiddle.net/r63ud8yL/2/
const app = new PIXI.Application({resizeTo: document.body, backgroundColor: 0xFFFFFF})
document.body.append(app.view)
// Forcing app.stage to occupy width of screen
// Is there a better way to do this?
const neCorner = new PIXI.Sprite()
neCorner.x = 0
neCorner.y = 0
const swCorner = new PIXI.Sprite()
swCorner.x = document.body.clientWidth
swCorner.y = document.body.clientHeight
app.stage.addChild(neCorner, swCorner)
const text = new PIXI.Text('first')
app.stage.addChild(text)
// Align text to right edge
text.x = (app.stage.width - text.width)
// Replacing text with a longer string
// It extends past the edge of the window; only 'sec' is visible
text.text = 'second'
// Attempting to align text to right edge again...
text.x = (app.stage.width - text.width)
// ...but the longer text expanded the width of app.stage
// so still only 'sec' is visible
рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдореИрдВ app.stage
рдХреА рдореВрд▓ рдЪреМрдбрд╝рд╛рдИ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдФрд░ рдЙрд╕ рдкрд░ рдЕрдкрдирд╛ рдЯреЗрдХреНрд╕реНрдЯ рд╕рдВрд░реЗрдЦрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ, рд▓реЗрдХрд┐рди рдореИрдВ рдЙрд╕ рдорд╛рди рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░реВрдВрдЧрд╛ред рдореБрдЭреЗ рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рд╕реНрдерд╛рдпреА рдПрдВрдХрд░ рд╕реЗ рджрд╛рдПрдВ рд╕реЗ рдмрд╛рдПрдВ рд╕рд┐рдВрдЧрд▓-рд▓рд╛рдЗрди рдЯреЗрдХреНрд╕реНрдЯ рдХреЛ "рдкреНрд░рд╡рд╛рд╣" рдХрд░рдиреЗ рдХрд╛ рдПрдХ рддрд░реАрдХрд╛ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдХреНрдпрд╛ рдореБрдЭреЗ рдПрдХ рдХрджрдо рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ?
pixi.js
рд╕рдВрд╕реНрдХрд░рдг : 5.1.0рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдХреИрд╕рд╛ рд╣реИ? (рдпрджрд┐ рдореВрд▓ рд╕реАрдорд╛ рд╕реНрдерд┐рд░ рд╣реИред)
https://jsfiddle.net/5o0yjusv/
рдпрджрд┐ рдорд╛рддрд╛-рдкрд┐рддрд╛ рдХреА рд╕реАрдорд╛рдПрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓рддреА рд╣реИрдВ, рддреЛ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдкрд╛рда рдХреЛ рдЫреЛрдбрд╝рдХрд░ рдЗрд╕рдХреА рд╕реАрдорд╛рдУрдВ рдХреА рдЧрдгрдирд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдпрд╣рд╛рдБ рдореЗрд░рд╛ рд▓реЗрдирд╛ рд╣реИ: https://jsfiddle.net/b9zp5kuh/
рд╕реАрдзреЗ рд░реЗрдВрдбрд░рд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реАрдзреЗ рдЬрд╛рдПрдВред
рдзрдиреНрдпрд╡рд╛рдж, @themoonrat ред рдЗрд╕рдиреЗ рдореБрдЭреЗ рд╕рд╣реА рд░рд╛рд╕реНрддреЗ рдкрд░ рд▓рд╛ рджрд┐рдпрд╛ред рдореИрдВ рдХреЗ рд╕рд╛рде рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд╛ рд░рд╣рд╛ рд╣реВрдБ app.screen
рдХреЗ рдмрдЬрд╛рдп app.renderer
ред рдореЗрд░рд╛ window.devicePixelRatio
2 рд╣реИ, рдЗрд╕рд▓рд┐рдП рд░реЗрдВрдбрд░рд░ рдХреА рдЪреМрдбрд╝рд╛рдИ рдореЗрд░реА рд╡рд┐рдВрдбреЛ рдХреА "рд╡рд╛рд╕реНрддрд╡рд┐рдХ" рдЪреМрдбрд╝рд╛рдИ рд╕реЗ 2x рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, app.screen
1x рд╣реИред
рд╣рд╛рдБ рдпрд╣ рд╕рдордЭ рдореЗрдВ рдЖрддрд╛ рд╣реИ! рдХреБрдЫ рднреА 'рдкрд┐рдирд┐рдВрдЧ' рдХрд░рддреЗ рд╕рдордп, рдЖрдкрдХреЛ рд╕рдЯреАрдХ рдЬреНрдЮрд╛рдд рдкрд┐рдХреНрд╕реЗрд▓ рдореЗрдВ рдХрд╛рдо рдХрд░рдирд╛ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдХрдВрдЯреЗрдирд░ рдЪреМрдбрд╝рд╛рдИ/рдКрдВрдЪрд╛рдИ рдЙрд╕рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдХрд╛рдо рдирд╣реАрдВ рдХрд░рддреА рдХреНрдпреЛрдВрдХрд┐ рд╡реЗ рдЕрдкрдиреЗ рдмрдЪреНрдЪреЛрдВ рдХреЗ рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдЧрддрд┐рд╢реАрд▓ рд╣реЛрддреЗ рд╣реИрдВред