2015-03-10 17 views
6

Ich arbeite an einem pebble.js Projekt, das von einem GitHub Repo geladen wird. Ich schreibe im Wesentlichen meinen Code lokal, drehe mich zu GitHub hoch und ziehe dann CloudPebble ein, um ihn zu erstellen, da mein Computer nicht in der Lage ist, das SDK auszuführen. CloudPebble sieht meine Bildquelle richtig, aber ich kann nicht herausfinden, wie ich darauf verweisen soll. Anfangs konnte es das Bild nicht finden, bis ich den Unterpfad in den Ordner resources verschoben habe. Dies ermöglichte einen richtigen Import, aber jedes Mal, wenn ich mein Bildes Referenz ich dies in der Log-App:Pebble JS, GitHub und Bildressourcen

JavaScript Error: 
[email protected][native code] 
    at load (ui/windowstack.js:2654:22) 
    at load (lib/image.js:165:11) 
    at load (ui/imageservice.js:85:16) 
    at resolve (ui/imageservice.js:109:60) 
    at ImageType (ui/simply-pebble.js:41:32) 
    at lib/struct.js:161:32 
    at menuItem (ui/simply-pebble.js:814:10) 
    at _resolveItem (ui/menu.js:161:30) 
    at _preloadItems (ui/menu.js:170:22) 
    at _resolveSection (ui/menu.js:151:25) 
    at section (ui/menu.js:239:23) 
    at updateActivityMenu (app.js:44:18) 
    at app.js:167:21 
    at onreadystatechange (lib/ajax.js:109:17) 

Hier ist ein Beispiel meiner Projektstruktur:

/project/resources/images/some_image.png 
/project/src/app.js 
/project/appinfo.json 

Dies ist das entsprechende Bit von appinfo.js

"media": [ 
     { 
      "file": "images/some_image.png", 
      "name": "MY_IMAGE", 
      "type": "png" 
     } 
    ] 

Und schließlich das entsprechende Bit von app.js

var item = { 
     title: data.Response.data.activity.activityName, 
     subtitle: data.Response.data.activity.activityDescription, 
     icon: 'MY_IMAGE' 
    }; 

Ich habe auch versucht, direkt auf den Bildpfad für die icon Eigenschaft verweisen, aber das Bild wird nie angezeigt und ich bekomme die gleiche JavaScript Error. Ich kann das Bild richtig hinzugefügt im Buildprotokoll anzeigen:

[ 6/29] some_image.png.pbi: resources/images/some_image.png ../../app/sdk2/Pebble/tools/bitmapgen.py -> build/resources/images/some_image.png.pbi 

An dieser Stelle ich ratlos bin - jede Hilfe würde sehr geschätzt werden.

+0

Haben Sie versucht, 'Symbol:‚images/some_image. Png''? Dies wird auch unterstützt. – sarfata

+0

@sarfata Ja, ich habe beide Methoden ausprobiert. – phatskat

+0

Dumme Frage, aber ich muss fragen: Haben Sie versucht, "Ressourcen/images/some_image.png" oder "/resources/images/some_image.png" oder "../resources/images/some_image.png" oder mit der .pbi Erweiterung auch? Ich weiß nichts über Kieselsteine, wollte aber nur deinen Weg zum Abschluss luftdicht machen. – Daniel

Antwort

0

Pebble SDK 2 oder 3? Vor 3 mussten Bildressourcen von PNG auf PBI vorkonvertiert werden. Pebbles image docs haben mehr Details darüber, welche Formate auf den ursprünglichen (aka Aplite) und Zeit (alias Basalt) Pebbles unterstützt werden.

+0

SDK 2 - es scheint, dass der Compiler in CloudPebble das Bild in PBI bereits konvertiert. Ich kann bestätigen, dass das Bild als Icon für die App im Menü funktioniert, wenn ich 'menuIcon: true' im' appinfo.json' setze, es scheint nur zu versauen, wenn ich es im eigenen Menü meiner App verwenden möchte als ein Symbol. – phatskat

+1

Unter SDK2 wurden PNG-Bilder automatisch in PBI konvertiert. – Chris

1

Versuchen Sie, den Pfad zu dem Bild statt dessen Ressourcen-ID mit:

var item = { 
    title: data.Response.data.activity.activityName, 
    subtitle: data.Response.data.activity.activityDescription, 
    icon: 'images/some_image.png' 
}; 

Die pebble.js Dokumentation suggests that this is the proper approach for internal menus:

var menu = new UI.Menu({ 
    sections: [{ 
    title: 'First section', 
    items: [{ 
     title: 'First Item', 
     subtitle: 'Some subtitle', 
     icon: 'images/item_icon.png' 
    }, { 
     title: 'Second item' 
    }] 
    }] 
}); 
+0

Danke - Ich werde das heute Abend nochmal versuchen, obwohl ich mir ziemlich sicher bin, dass ich es schon einmal versucht habe. – phatskat