Seite 5 von 9

Re: 2D-Bilder in 3D nach hinten kippen

Verfasst: 18.10.2018 13:07
von RSBasic
In SpiderBasic gibt es kein OSVersion(). Jetzt schon:

Hauptseite > Betriebssystem-Version ermitteln:

Code: Alles auswählen

EnableExplicit

;https://stackoverflow.com/questions/38241480/detect-macos-ios-windows-android-and-linux-os-with-js
Procedure OSVersion()
  Protected pb_os_windows_2000 = #PB_OS_Windows_2000
  Protected pb_os_windows_xp = #PB_OS_Windows_XP
  Protected pb_os_windows_server_2003 = #PB_OS_Windows_Server_2003
  Protected pb_os_windows_vista = #PB_OS_Windows_Vista
  Protected pb_os_windows_7 = #PB_OS_Windows_7
  Protected pb_os_windows_8 = #PB_OS_Windows_8
  Protected pb_os_windows_8_1 = #PB_OS_Windows_8_1
  Protected pb_os_windows_10 = #PB_OS_Windows_10
  
  ! var userAgent = window.navigator.userAgent;
  ! var platform = window.navigator.platform;
  ! var macosPlatforms = ['Macintosh', 'MacIntel', 'MacPPC', 'Mac68K'];
  ! var windowsPlatforms = ['Win32', 'Win64', 'Windows', 'WinCE'];
  ! var iosPlatforms = ['iPhone', 'iPad', 'iPod'];
  ! var userAgentpart;
  ! if (macosPlatforms.indexOf(platform) !== -1) {
  !   //...
  ! } else if (iosPlatforms.indexOf(platform) !== -1) {
  !   //...
  ! } else if (windowsPlatforms.indexOf(platform) !== -1) {
  !   userAgentpart = userAgent.split(/\s*[;)(]\s*/);
  !   switch(userAgentpart[1]) {
  !     case 'Windows NT 10.0': return v_pb_os_windows_10;
  !     case 'Windows NT 6.3': return pb_os_windows_8_1;
  !     case 'Windows NT 6.2': return pb_os_windows_8;
  !     case 'Windows NT 6.1': return pb_os_windows_7;
  !     case 'Windows NT 6.0': return pb_os_windows_vista;
  !     case 'Windows NT 5.2': return pb_os_windows_server_2003;
  !     case 'Windows NT 5.1': return pb_os_windows_xp;
  !     case 'Windows NT 5.0': return pb_os_windows_2000;
  !   }
  ! } else if (/Android/.test(userAgent)) {
  !   //...
  ! } else if (/Linux/.test(platform)) {
  !   //...
  ! }
  
EndProcedure

;================================================== Beispielcode ==================================================

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_ScreenCentered | #PB_Window_SystemMenu | #PB_Window_SizeGadget)
  
  Select OSVersion()
    Case #PB_OS_Windows_2000
      Debug "Windows 2000"
    Case #PB_OS_Windows_XP
      Debug "Windows XP"
    Case #PB_OS_Windows_Server_2003
      Debug "Windows Server 2003"
    Case #PB_OS_Windows_Vista
      Debug "Windows Vista"
    Case #PB_OS_Windows_7
      Debug "Windows 7"
    Case #PB_OS_Windows_8
      Debug "Windows 8"
    Case #PB_OS_Windows_8_1
      Debug "Windows 8.1"
    Case #PB_OS_Windows_10
      Debug "Windows 10"
    Case #PB_OS_Linux_2_2
      ;...
    Case #PB_OS_MacOSX_10_0
      ;...
  EndSelect
  
EndIf

Re: 2D-Bilder in 3D nach hinten kippen

Verfasst: 18.10.2018 13:07
von RSBasic
Bei der Funktion OSVersion() konnte ich nur die Windows-Versionen berücksichtigen. Andere Betriebssysteme (Linux, Android, MacOS, iOS) konnte ich nicht hinzufügen, da ich mit diesen nicht testen konnte.
Wenn jemand Zeit hat und mithelfen möchte, kann diese Funktion gerne erweitert werden. Danke :)

Re: 2D-Bilder in 3D nach hinten kippen

Verfasst: 18.10.2018 13:13
von TroaX
Dir ist aber schon bewusst, das du versehentlich den Thread-Titel geändert hast, oder? :lol: :lol: :lol:

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 18.10.2018 13:24
von RSBasic
Stimmt, ist mir nicht aufgefallen. Habs angepasst. :D Danke :)
Beim Abtrennen des Beitrages von stevie1401 mit der Frage mit dem Kippen ist mir ein Fehler unterlaufen. Ich habe zwar den Beitrag von stevie1401 fürs Abtrennen ausgewählt (CheckBox aktiviert), aber dummerweise markiert das Forum automatisch einige vorherigen Beiträge, aber nicht alle. Das habe ich nicht gesehen und hatte dann zwei zerpflückte Threads.
Beim Rückgängigmachen wurde der Titel anscheinend überschrieben.

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 18.10.2018 13:55
von RSBasic
In SpiderBasic kann man keine externen Dateien (CSS, Javascript) einbinden. Jetzt schon:

Hauptseite > Externe Dateien (CSS, Javascript) einbinden:

Code: Alles auswählen

EnableExplicit

Procedure OpenLibrary(filename.s)
  ! var FileExtension = v_filename.toLowerCase().match(/\.[0-9a-z]+$/i)[0];
  
  ! switch(FileExtension) {
  !   case ".css":
  !     var NewElement = document.createElement("link");
  !     NewElement.type = "text/css";
  !     NewElement.href = v_filename;
  !     var HeadElement = document.getElementsByTagName("head")[0];
  !     HeadElement.appendChild(NewElement);
  !     break;
  !   case ".js":
  !     var NewElement = document.createElement("script");
  !     NewElement.type = "text/javascript";
  !     NewElement.src = v_filename;
  !     var HeadElement = document.getElementsByTagName("head")[0];
  !     HeadElement.appendChild(NewElement);
  !     break;
  !   default:
  !     return 0;
  ! }
  
  ! return 1;
  
EndProcedure

;================================================== Beispielcode ==================================================

If OpenWindow(0, 0, 0, 500, 400, "Window", #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  OpenLibrary("/css/styles.css")
  OpenLibrary("/js/Scripts.js")
 
EndIf

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 18.10.2018 20:00
von Sicro
Gute Arbeit, RSBasic! 8)

Bezüglich OSVersion(): Dort erhalte ich beim Firefox in der Entwickler-Web-Konsole folgende Fehlermeldung angezeigt:
SyntaxError: expected expression, got ';'[Weitere Informationen] spiderbasic.js:313:17
und folgende Zeile wird in der spiderbasic.js als fehlerhaft markiert:

Code: Alles auswählen

 } else if (!os &;& /Linux/.test(platform)) {

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 18.10.2018 20:20
von RSBasic
Hi Sicro,

das ist merkwürdig. Bei mir unter Firefox mit aktueller Version funktioniert es und erhalte keine Meldung.
Benutzt du vielleicht eine ältere Version? Wenn ja, welche? Wenn nicht, kannst du ohne Addons erneut testen? Nur um das auszuschließen. Danke im Voraus

Bei dir:

Code: Alles auswählen

} else if (!os &;& /Linux/.test(platform)) {
Bei mir:

Code: Alles auswählen

} else if (!os && /Linux/.test(platform)) {
Ich weiß nicht, woher bei dir ";" kommt.

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 18.10.2018 22:05
von Sicro
RSBasic hat geschrieben:Ich weiß nicht, woher bei dir ";" kommt.
Ich dachte, das Zeichen ist wirklich in deinem Code... Übeltäter ist das Userscript "PB-SyntaxHighlighting"

Ok, da das Problem nun geklärt ist, habe ich dein Code nochmal ohne dem oben genanntem Script laufen gelassen.
Nun erscheint die Fehlermeldung:
ReferenceError: os is not defined
Bezieht sich auf das alte Problem, aber beantworte die Fragen dennoch mal:
RSBasic hat geschrieben:Benutzt du vielleicht eine ältere Version?
Nein, die Neuste.
RSBasic hat geschrieben:Wenn nicht, kannst du ohne Addons erneut testen?
Mit frischem Firefox-Profil getestet.

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 18.10.2018 22:16
von RSBasic
Ich hab den oberen Code aktualisiert. Der Code sollte jetzt laufen.

Re: SpiderBasic Library - Liste neuer Funktionen

Verfasst: 18.10.2018 22:53
von Sicro
Ok, nun läuft der Code fehlerfrei. :)

Wie es aussieht, hast du den OS-Detektor-Code von hier: https://stackoverflow.com/questions/382 ... os-with-js
Dort werden viele hilfreiche Informationen beschrieben. Es wäre daher vorteilhaft, wenn du die URL in deinen Code integrierst.