Frage

Ich bin keineswegs ein Ruby-Entwickler, aber ich HAML für einen rubin Rahmen auf meinem localhost kodieren.

Ich hatte setzen ursprünglich eine Datei namens vidgirlBox2.flv Datei und es innerhalb der HAML genannt, aber die Datei in einer SWF genannt vidGirl_home.swf umgewandelt.

Dieses swf funktioniert.

Bis ich eine einfache Änderung des ursprünglichen Fla gemacht und überschrieb die vidGirl_home.swf.

Es ist nie wieder gearbeitet.

Ich habe versucht SWFObject, Unauffällig Flash-Objekt, das Nötigste ein swf einzubetten, alles.

Es stellte sich heraus, erhalte ich diese Nachricht in meinem Terminal, wenn meine lokalen Server ausgeführt wird:

ActionController::RoutingError (No route matches "/Users/daniellevine/Desktop/vidgirlBox2.flv" with {:method=>:get}):


Rendering rescues/layout (not_found)

Wie Sie sehen können, seine Suche nach einer alten Datei. Ich rufe diese Datei nicht in irgendwelchen meiner haml. Ich bin verwirrt, wie diese flv selbst in den Rubin schrieb (das ist, was ich davon ausgehen, zumindest).

Dies war mein Versuch, dieses Problem zu umgehen, aber es scheint, dass dieser Code einen Schienen-Compiler-Fehler erzeugt. Dies könnte nur eine einfache Namenskonvention Fehler. Bin ich irgendwo ein Anführungszeichen fehlt?

My New Embed Code:

      - if Rails.env.development?
      = javascript_include_tag "swfobject"
      - else
      %script{:src => "http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js"}
      - id ||= "flash"
      - filename ||= "/images/vidGirl/vidGirl_home.swf"
      - width ||= 440
      - height ||= 247
      - background ||= "#ffffff"
      - version ||= 9
      - base ||= '{base: "."}'

      %div{ :id => id }
        %strong You need to upgrade your Flash Player

      = javascript_tag "swfobject.embedSWF('/images/vidGirl/vidGirl_home.swf', 'vidGirl_home', '440', '247', '9.0.0', '/javascripts/swfobject/expressInstall.swf', {}, '/public/', {});"

Wer weiß, was passiert sein könnte? oder besser noch, wie dieses Problem beheben?

Danke !!

War es hilfreich?

Lösung

Letztes Mal hat ich dieses Problem hatte, ein Flash-Film versucht, eine anderen Flash-Film zu laden, aber der Basispfad falsch war. So austinfromboston könnte richtig sein, durch die flv zu einem swf konvertieren, ist es Ihre .flv in einer SWF-Datei eingebettet.

Wie dies umgehen? Stellen Sie sicher, dass der Pfad in der .swf releative ist nicht absolut. Dann müssen Sie die BASE param einzustellen. Hier ist ein Beispiel mit swobject und HAML:

- if Rails.env.development?
= javascript_include_tag "swfobject"
- else
%script{:src => "http://ajax.googleapis.com/ajax/libs/swfobject/2.1/swfobject.js"}
- id ||= "flash"
- filename ||= "/swf/flashmovie.swf"
- width ||= 990
- height ||= 500
- background ||= "#ffffff"
- version ||= 9
- base ||= '{base: "."}'

%div{ :id => id }
  %strong You need to upgrade your Flash Player

= javascript_tag "swfobject.embedSWF('#{filename}', '#{id}', '#{width}', '#{height}', '#{version}', '/swf/express_Install.swf', {}, #{base}, {});"

Der Weg /swf/flashmovie.swf bedeutet, dass es ein Ordner swf im öffentlichen Ordner ist.

Andere Tipps

Ich bin nicht super-Flash-versierte, aber es sieht aus, wie wenn man die Datei in eine SWF umgewandelt, es Ihre vorherige vidgirlBox2.flv Datei als Ressource im Grunde eingebettet. Meine Vermutung ist, dass Ressource verwendet auf Ihrem Desktop zu leben, also, wenn Sie Ihre fla bearbeitete Datei der lokale Pfad irgendwie in die Ressource gespeichert wurde. Der Fehler, den Sie sehen dann auf einen schlechten Ressourcenpfad zurückzuführen sein würde sich aus der Flash-Datei aufgerufen wird, nicht von den Anrufen, die Sie in Ihrem haml Markup machen, die gut aussehen.

Es sieht aus wie der Code einbetten Sie verwenden versucht, die Datei über einen lokalen Pfad zuzugreifen (das heißt der Pfad auf Ihrem Computer).

Ich bin mir nicht sicher, ob dies eine Rails-Anwendung (oder eine andere Ruby-Framework) ist, aber Sie werden die .flv / swf-Datei ist in der gleichen Stelle wie andere statische Dateien vornehmen müssen.

Für Rails-Anwendungen, würde dies in der Öffentlichkeit / Ordner. Ich habe einige Rails + Flash-Anwendungen und ich in der Regel die Dateien in einem öffentlich / flash / Verzeichnis.

Eine andere Möglichkeit ist es, die .swf / .flv-Datei auf einem S3-Account und greifen Sie über die direkte S3 URL zu setzen. Das ist schön für größere Videodateien, wie es auf Bandbreite spart.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top