سؤال

أنا بأي حال من الأحوال مطور روبي، لكنني رمز Haml لإطار روبي على محلي محلي.

لقد وضعت في الأصل ملف يسمى ملف Vidgirlbox2.flv ودعا إليه داخل Haml، لكنه حول الملف إلى SWF يسمى vidgirl_home.swf.

هذا الصندوق عملت.

حتى أظهرت تغييرا بسيطا في .fla Orginal، والكتابة فوق vidgirl_home.swf.

لم تنجح مرة أخرى.

جربت Swfobject، كائن فلاش غير مزعج، والحد الأدنى من تضمين SWF، كل شيء.

اتضح، أحصل على هذه الرسالة في جهازي عند تشغيل الخادم المحلي الخاص بي:

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


Rendering rescues/layout (not_found)

كما يمكنك أن تقول، تبحث عن ملف قديم. أنا لا أدعو هذا الملف في أي من هاملتي. أنا مرتبك فيما يتعلق بكيفية كثب FLV نفسها في Ruby (هذا ما أفترضه على الأقل).

كانت هذه محاولتي في الحل البديل، ولكن يبدو أن هذا الرمز ينشئ خطأ مترجم القضبان. قد يكون هذا مجرد خطأ في اتفاقية التسمية البسيطة. هل أفتقد علامة اقتباس في مكان ما؟

رمز التضمين الجديد الخاص بي:

      - 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/', {});"

أي شخص يعرف ما قد يحدث؟ أو أفضل بعد، كيفية إصلاح هذا؟

شكرًا لك!!

هل كانت مفيدة؟

المحلول

آخر مرة أتيحت لي هذه المشكلة، كان فيلم فلاش واحد يحاول تحميل فيلم فلاش آخر ولكن المسار الأساسي كان خطأ. لذلك قد يكون AustinfromboDon على حق، من خلال تحويل FLV إلى SWF، وهو جزء لا يتجزأ من .flv في SWF.

حول كيفية الحصول على هذا؟ تأكد من أن المسار في .swf هو النعش وليس مطلقا. ثم، تحتاج إلى تعيين PALIAM BASE. هنا مثال مع Swobject و 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}, {});"

المسار / WFF/Flashmovie.swf يعني وجود مجلد SWF في المجلد العمومي.

نصائح أخرى

أنا لست Super Flash-Savvy، ولكن يبدو أنه عندما قمت بتحويل الملف إلى SWF، فإنه جزءا لا يتجزأ بشكل أساسي على ملف Vidgirlbox2.flv السابق كمورد. تخميني هو أن المورد يستخدم للعيش على سطح المكتب الخاص بك، لذلك عند تحرير ملف FLA الخاص بك، تم حفظ المسار المحلي في المورد بطريقة أو بأخرى. إن الخطأ الذي تراه سيكون عند إذن مسار موارد سيء يتم استدعاءه من داخل ملف الفلاش نفسه، وليس من المكالمات التي تقوم بها في علامات Haml الخاصة بك، والتي تبدو جيدة.

يبدو وكأنه رمز التضمين الذي تستخدمه هو محاولة الوصول إلى الملف عبر مسار محلي (أي المسار على جهاز الكمبيوتر الخاص بك).

لست متأكدا مما إذا كانت هذه هي تطبيق القضبان (أو إطار روبي آخر) ولكن ستحتاج إلى جعل ملف .flv / .swf في نفس المكان مثل الملفات الثابتة الأخرى.

لتطبيقات القضبان، سيكون هذا داخل الجمهور / المجلد. أقوم ببعض القضبان + تطبيقات الفلاش وأضعت الملفات بشكل عام في دليل عام / فلاش / دليل.

خيار آخر هو وضع ملف .swf / .flv على حساب S3 والوصول إليه عبر عنوان URL المباشر S3. هذا لطيف لملفات الفيديو الأكبر حيث ينقذ على عرض النطاق الترددي.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top