axShockwaveFlash_FSCommand не отвечает на некоторых машинах - PullRequest
0 голосов
/ 10 сентября 2011

Я создал проект C sharp, в котором я добавил ShockwaveFlashObject для воспроизведения моего SWF-файла.Проблема, с которой я сталкиваюсь, заключается в том, что когда я создаю установщик для своего проекта, он корректно работает на моей машине при установке, но на моем ноутбуке swf загружается правильно, но не отвечает на _FSCommand.Я не могу использовать блок try и catch, так как он не входит в дескриптор FSCommand.Нужно ли что-то связывать с моей установкой?Ноутбук, который я использую, совершенно новый, и я так хотел, чтобы я знал, что нужно для того, чтобы все работало правильно, и чтобы я мог добавить необходимые компоненты в мой установщик.Также не сомневаюсь, что эта информация имеет какое-либо применение, но я использую расширенный установщик для сборки и запуска своего проекта.

PS Я добавил такие вещи, как приведенный ниже код, чтобы знать, выполняется ли FSCommand.

MessageBox.Show("step 1/2/3");

Вот весь код.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data.MySqlClient;
using System.IO;
using System.Runtime.InteropServices;
using System.Diagnostics;
using System.Globalization;

namespace WindowsFormsApplication1
{
    public partial class frmFlashIntro : Form
    { 
      public Form FormfrmMainRef { get; set; }

        public frmFlashIntro()
        {
            InitializeComponent();
            axShockwaveFlash1.Playing = true;
            FormBorderStyle = FormBorderStyle.None;
            WindowState = FormWindowState.Maximized;
            string currentPath = Directory.GetCurrentDirectory();
            axShockwaveFlash1.Movie = "file://\\" + currentPath + "\\intro.swf"; 
         }

         private void axShockwaveFlash1_FSCommand(object sender, AxShockwaveFlashObjects._IShockwaveFlashEvents_FSCommandEvent e)
        {
            MessageBox.Show("step 1");
            string btn = e.command.ToString();
            MessageBox.Show("step 2");
            if (btn == "play")
            {
                MessageBox.Show("step 3");
                try
                {
                    MessageBox.Show("step 4");
                    var form2 = new frmMain();
                    MessageBox.Show("step 5");
                    this.Hide();
                    MessageBox.Show("step 6");
                    form2.Show();
                }
                catch (Exception ex) { MessageBox.Show(ex.ToString()); }
            }
            if (btn == "syllabus")
            {
                MySqlConnection con = new MySqlConnection(Properties.Settings.Default.conString);
                con.Open();
                Syllabus_usageInformation syl = new Syllabus_usageInformation(this);
                MySqlCommand cmd = new MySqlCommand("SELECT ImageFiles FROM misc WHERE id=1", con);
                byte[] img = (byte[])cmd.ExecuteScalar();
                string strFn = Convert.ToString(DateTime.Now.ToFileTime());
                FileStream fs = new FileStream(strFn, FileMode.CreateNew, FileAccess.Write);
                fs.Write(img, 0, img.Length);
                fs.Flush();
                fs.Close();
                con.Close();
                syl.kpImageViewer1.OpenButton = false;
                syl.kpImageViewer1.ImagePath = strFn;
                syl.Show();
                this.Hide();
            }
            if (btn == "usageInformation")
            {   }
        }

     }
}

1 Ответ

0 голосов
/ 16 сентября 2011

Установлен ли на вашем ноутбуке флеш-плеер ActiveX control? Вы должны установить его, иначе ничто не сможет воспроизвести ваш файл .swf.

...