Интеграция pixijs - машинопись в Ionic 2 с npm

  • npm install -g ionic
  • Пустой ионный запуск pixiApp --v2
  • cd pixiApp
  • установка npm
  • npm install pixi.js --save (версия 4.1.0)
  • Установка npm --save @ types / pixi.js (я знаю, что это типы def для v3:()
  • Я заменяю содержимое pixiApp\node_modules\@types\pixi.js\index.d.ts на https://github.com/pixijs/pixi-typescript/blob/v4.x/pixi.js.d.ts
  • В приложении home.ts off по умолчанию я добавил этот код:

import { Component } from '@angular/core';
import { NavController } from 'ionic-angular';
import * as PIXI from 'pixi.js';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {
  constructor(public navCtrl: NavController) {}

  ngOnInit() {
    PIXI.autoDetectRenderer(800, 600, {backgroundColor: 0x1099bb});
  }
}

  • и наконец, я запустил приложение с командой: ionic serve

Результаты КО

[16:56:52] rollup: Экспорт 'autoDetectRenderer' не определен как 'D:\labs\ionic2\pixiApp\src\pages\home\home.ts'

Я перепробовал много вариантов только с неудачами:(:(

Вы можете мне помочь?

С наилучшими пожеланиями

1 ответ

Это в основном с самого начала работало для меня. Я сделал именно так, как вы описали, чтобы создать новый пустой ионный проект и установить пакет и типы pixi.js. Я сделал импорт так, как вы описали.

Вот мои исходные файлы для "домашней" страницы:

home.ts

import { Component, ViewChild, ElementRef } from '@angular/core';
import { NavController } from 'ionic-angular';
import * as PIXI from 'pixi.js';

@Component({
  selector: 'page-home',
  templateUrl: 'home.html'
})
export class HomePage {

  @ViewChild("pixi")
  public pixiContainer: ElementRef;
  private pixi:PIXI.Application;

  constructor(public navCtrl: NavController) { }

  ionViewDidEnter() {
    this.pixi = new PIXI.Application(640,480,{backgroundColor:0x112266});
    let aspectRatio = (this.pixi.renderer.height / this.pixi.renderer.width);
    this.pixi.view.style.width = "100%";
    this.pixi.view.style.height = `${aspectRatio*100}%`;
    this.pixiContainer.nativeElement.appendChild(this.pixi.view);
  }
}

home.scss

page-home {
    .pixiContainer {
        width: 100%;
        height: 100%;
        display: block;
    }
}

home.html

<ion-header>
  <ion-navbar>
    <ion-title>
      Ionic Blank
    </ion-title>
  </ion-navbar>
</ion-header>

<ion-content padding>
  <div #pixi class="pixiContainer">
  </div>
</ion-content>

И это сработало. У меня есть темно-синий холст.

Это информация о моей текущей версии для ionic (поскольку все быстро меняется):

cli packages: (/usr/local/lib/node_modules)

    @ionic/cli-utils  : 1.9.2
    ionic (Ionic CLI) : 3.9.2

local packages:

    @ionic/app-scripts : 2.1.3
    Ionic Framework    : ionic-angular 3.6.0

System:

    Node : v7.10.0
    npm  : 4.2.0 
    OS   : macOS Sierra

Надеюсь это поможет!

Другие вопросы по тегам