Vue implementiert die Bildfrequenzwiedergabe des Karussells

Vue implementiert die Bildfrequenzwiedergabe des Karussells

In diesem Artikelbeispiel wird der spezifische Code von Vue zur Realisierung der Bildfrequenzwiedergabe des Karussells als Referenz bereitgestellt. Der spezifische Inhalt ist wie folgt

brauchen

Übergeben Sie ein Array mit Verzeichnisnamen. Lesen Sie über diesen Verzeichnisnamen alle Bilder im Dateiverzeichnis und spielen Sie sie in einer Schleife ab. Dabei entsteht der Effekt, dass jede Sekunde eine bestimmte Anzahl von Bildern abgespielt wird. Nachdem das letzte Verzeichnis abgespielt wurde, springen Sie zum ersten Verzeichnis und spielen es in einer Schleife ab.

Core: Verwenden Sie eine API von webpack require.contex, um den Dateinamen im Verzeichnis zu lesen. Wenn Sie mehr wissen möchten, können Sie es sich ansehen.

Code

HTML

<Vorlage>
 <div id="imgPlay" ref="container" :style="[Stil]">
 <img :src="imgsrc" :style="[{height:style.height,width:style.width}]">
 <div id="aber">
  <button @click="start()">Starten</button>
  <button @click="stop()">Stopp</button>
 </div>
 </div>
</Vorlage>

JavaScript

<Skript>
Standard exportieren {
 Name: "ZxImgPlay",
 Daten () {
 zurückkehren {
  Stil:[
 Breite: "50px",
 Höhe: "50px"
 ],
  Intervall: null, // Timer-ID
  flag: true, // Zeitschalter setIntervalNumber: 0, // Aktuell angezeigtes Bild subscript imgsrc: "", // Anzuzeigender Bildpfad imgUrls: [], // Alle Bildpfade frameRate: 0 // Bildrate }
 },
 berechnet: {},
 betrachten: {},
 erstellt () { },
 montiert () {
 dies.zxInit()
 },
 vorZerstören () { },

 Methoden: {
 zxInit() {
 //This.DisplayParam ist eine Menge von Dingen innerhalb des Unternehmens, und das gemischte Objekt //this.DisplayParam.frameRate ist ein Array ["Verzeichnisname 1", "Verzeichnisname 2"]
 // this.DisplayParam.imgUrls ist ein totes Bild. Wenn kein Verzeichnis vorhanden ist, wird das tote Bild verwendet. // this.DisplayParam.frameRate ist die eingehende Bildrate this.frameRate = this.DisplayParam.frameRate && (1000 / this.DisplayParam.frameRate)
  dies.imgUrls = dies.DisplayParam.imgUrls
  this.DisplayParam.imageFileName != 0 ? this.readdir(this.DisplayParam.imageFileName) : this.showImages(true)
 },

 Start () {
  wenn (dieses.flag) return
  dies.showImages()
  dieses.flag = wahr
 },

 stoppen () {
  this.flag = falsch
  Intervall löschen(dieses.Intervall)
 },

 readImages(Bilddateiname, _A) {
  dies.stopp()
  let req = require.context("@/../static/images", true, /\.(?:bmp|jpg|gif|jpeg|png)$/).keys();
  let Pfad = neuer RegExp(Bilddateiname[_A])
  req.forEach(item => {
  wenn (Pfad.Test(Element)) {
   this.imgUrls.push({ img: "@/../static/images/" + imageFileName[_A] + item.substring(item.lastIndexOf('/')) })
  }
  })
  dies.showImages()
 },
 readdir (Bilddateiname) {
  diese.imgUrls = []
  für (lass i = 0; i < Bilddateiname.Länge; i++) {
  dies.readImages(Bilddateiname, i)
  }
 },

 zeigeBilder(_B) {
  wenn (_B) this.imgUrls = this.imgUrlsSort(this.imgUrls, 'sort')
  Konsole.log(diese.imgUrls)
  dieses.Intervall = setzeIntervall(dieses.setIntervalFun, diese.FrameRate)
 },

 imgUrlsSort (ary, Schlüssel) {
  return ary.sort((a, b) => {
  sei x = a[Schlüssel];
  sei y = b[Schlüssel];
  Rückgabe ((x < y) ? -1 : (x > y) ? 1 : 0)
  })
 },

 setzeIntervalFun () {
  wenn (this.setIntervalNumber >= this.imgUrls.length) {
  this.setIntervalNumber = 0
  }
  dies.imgsrc = dies.imgUrls[diese.setIntervalNumber++].img || ''
 }
 }
}
</Skript>

Frage

Das Obige hat die Funktion erreicht, aber bisher wurden zwei Probleme gefunden

1. Der erste Parameter der require.context()-API kann keinen veränderbaren Wert, wie etwa eine Variable, verwenden, und es wird eine Warnung ausgegeben.
2. Der obige Code wird implementiert, indem die Quelle des Bildes ständig geändert wird, d. h. jedes Mal, wenn die Quelle geändert wird, wird eine HTTP-Anforderung gesendet, um das Bild abzurufen, was dazu führt, dass der Speicher nicht freigegeben wird und ständig zunimmt.

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Verwenden Sie python-opencv, um das Video zu lesen und die Gesamtzahl der Videobilder und FPS zu berechnen
  • Unity3D zeigt FPS in Echtzeit basierend auf OnGUI an
  • Unity OnGUI zeigt die FPS des Spiels in Echtzeit an
  • Python liest das Video, verarbeitet es und berechnet die Bildrate fps in Echtzeit
  • So messen Sie die Anzahl der Bilder pro Sekunde (FPS) in Android
  • So berechnen Sie die Bildrate FPS von Webanimationen

<<:  So dockerisieren Sie eine Python-Django-Anwendung

>>:  Was tun, wenn Sie das ursprüngliche Passwort für MySQL auf dem MAC vergessen?

Artikel empfehlen

MySQL Deep Paging (wie man schnell Millionen von Daten paginiert)

Inhaltsverzeichnis Vorwort Fall Optimierung Zusam...

VMware vSAN - Zusammenfassung der ersten Schritte

1. Hintergrund 1. Stellen Sie kurz den Shared Sto...

Über 3 gängige Pakete der REM-Anpassung

Vorwort Ich habe bereits einen Artikel über REM-A...

Professionelles und nicht-professionelles Webdesign

Zunächst einmal hängt die Gestaltung des Webseiten...

JavaScript zum Implementieren der Auswahl oder Stornierung von Kontrollkästchen

In diesem Artikel wird der spezifische JavaScript...

Was ist ein MySQL-Tablespace?

Das Thema, das ich heute mit Ihnen teilen möchte,...

Stellen Sie IE8 so ein, dass Code im IE7-Stil verwendet wird

<meta http-equiv="x-ua-kompatibel" co...