fixed last page loading bug
This commit is contained in:
parent
b6ce29bfd0
commit
aaafbbc12c
1 changed files with 18 additions and 17 deletions
|
@ -12,6 +12,7 @@
|
|||
- in double page mode the last page is not showing if it is a single page
|
||||
|
||||
Nice 2 have:
|
||||
- fix manga mode
|
||||
- jump to page?
|
||||
- enable menu items via config, allow for custom items
|
||||
- decouple controls from reader api
|
||||
|
@ -89,7 +90,6 @@ function ComicBook(id, srcs, opts) {
|
|||
var pages = []; // array of preloaded Image objects
|
||||
var canvas; // the HTML5 canvas object
|
||||
var context; // the 2d drawing context
|
||||
var buffer = 1; // image preload buffer level
|
||||
var loaded = []; // the images that have been loaded so far
|
||||
var scale = 1; // page zoom scale, 1 = 100%
|
||||
var is_double_page_spread = false;
|
||||
|
@ -445,12 +445,7 @@ function ComicBook(id, srcs, opts) {
|
|||
|
||||
this.showControl("loadingOverlay");
|
||||
|
||||
//var srcs = this.srcs;
|
||||
|
||||
if (no_pages < buffer) { buffer = no_pages; } // don't get stuck if the buffer level is higher than the number of pages
|
||||
|
||||
var i = pointer; // the current page counter for this method
|
||||
//if (i - buffer >= 0) { i = i - buffer; } // start loading from the first requested page - buffer
|
||||
|
||||
// I am using recursion instead of a forEach loop so that the next image is
|
||||
// only loaded when the previous one has completely finished
|
||||
|
@ -479,14 +474,13 @@ function ComicBook(id, srcs, opts) {
|
|||
preload(i);
|
||||
}
|
||||
|
||||
//console.log(loaded[loaded.length-1]);
|
||||
|
||||
// double page mode needs an extra page added to the buffer
|
||||
padding = (options.displayMode === "double") ? 1 : 0;
|
||||
|
||||
// start rendering the comic when the buffer level has been reached (FIXME: buggy, fails if trying to load the last couple of pages)
|
||||
if (loaded[loaded.length-1] === pointer + buffer + padding || loaded[loaded.length-1] === page_requested) {
|
||||
// double page mode needs an extra page added
|
||||
var buffer = (options.displayMode === "double" && pointer < srcs.length-1) ? 1 : 0;
|
||||
|
||||
// start rendering the comic when the requested page is ready
|
||||
if ($.inArray(pointer + buffer, loaded) !== -1
|
||||
|| (typeof page_requested === "number" && $.inArray(page_requested + buffer, loaded))
|
||||
) {
|
||||
// if the user is waiting for a page to be loaded, render that one instead of the default pointer
|
||||
if (typeof page_requested === "number") {
|
||||
pointer = page_requested-1;
|
||||
|
@ -526,8 +520,11 @@ function ComicBook(id, srcs, opts) {
|
|||
var offsetW = 0, offsetH = 0;
|
||||
|
||||
var page = ComicBook.prototype.getPage(pointer);
|
||||
var page2 = ComicBook.prototype.getPage(pointer + 1);
|
||||
var page2 = false;
|
||||
|
||||
if (options.displayMode === "double" && pointer < srcs.length-1) {
|
||||
page2 = ComicBook.prototype.getPage(pointer + 1);
|
||||
}
|
||||
if (typeof page !== "object") {
|
||||
throw new ComicBookException(ComicBookException.INVALID_PAGE_TYPE, typeof page);
|
||||
}
|
||||
|
@ -539,7 +536,11 @@ function ComicBook(id, srcs, opts) {
|
|||
canvas.height = 0;
|
||||
|
||||
// show double page spreads on a single page
|
||||
is_double_page_spread = ((page.width > page.height || page2.width > page2.height) && options.displayMode === "double");
|
||||
is_double_page_spread = (
|
||||
typeof page2 === "object"
|
||||
&& (page.width > page.height || page2.width > page2.height)
|
||||
&& options.displayMode === "double"
|
||||
);
|
||||
if (is_double_page_spread) { options.displayMode = "single"; }
|
||||
|
||||
if (options.displayMode === "double") {
|
||||
|
@ -598,9 +599,9 @@ function ComicBook(id, srcs, opts) {
|
|||
}
|
||||
|
||||
// in manga double page mode reverse the page(s)
|
||||
if (options.manga && options.displayMode === "double") {
|
||||
if (options.manga && options.displayMode === "double" && typeof page2 === "object") {
|
||||
var tmpPage = page;
|
||||
var tmpPage2 = page2; // FIXME: check this exists before using
|
||||
var tmpPage2 = page2;
|
||||
page = tmpPage2;
|
||||
page2 = tmpPage;
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue