2013-03-10 2 views
1

Я могу загрузить swf-файл в свою программу C# через объект axShockwaveFlash, но я должен закрыть его нажатием кнопки пользователя. Я пробовал под кодами со всеми возможностями, но никто из них не работал.Unload swf movie

axShockwaveFlash1.Movie = ""; 
axShockwaveFlash1.Movie = string.Empty; 
axShockwaveFlash1.Movie = null; 
axShockwaveFlash1.Playing = false; 

У вас есть идея, как «разгрузить» SWF-файл?

+0

Означает ли метод Stop(), что вы хотите? – Jehof

+0

@Jehof Извините, но не повезло :( – rasputin

ответ

4

Просто удалите элемент управления Flash из коллекции элементов управления Windows Form. Вот как я это реализую (приведенный ниже код проверен и работает отлично):

public partial class Form1 : Form 
{ 
    private AxShockwaveFlashObjects.AxShockwaveFlash axFlash; 

    public Form1() 
    { 
     InitializeComponent(); 

     axFlash = new AxShockwaveFlashObjects.AxShockwaveFlash(); 
     axFlash.BeginInit(); 
     axFlash.Location = new Point(50, 50); 
     axFlash.Name = "Load/unload test"; 
     axFlash.TabIndex = 0; 
     axFlash.EndInit(); 
    } 

    private void startButton_Click(object sender, EventArgs e) 
    { 
     axFlash = new AxShockwaveFlashObjects.AxShockwaveFlash(); 
     axFlash.BeginInit(); 
     axFlash.Location = new Point(50, 80); 
     axFlash.Name = "Test Movie"; 
     axFlash.TabIndex = 0; 

     axFlash.Size = new Size(640, 480); 
     axFlash.EndInit(); 
     this.Controls.Add(axFlash); 
     axFlash.LoadMovie(0, @"C:\Movies\MyMovie.swf"); 
    } 

    private void unloadButton_Click(object sender, EventArgs e) 
    { 
     this.Controls.Remove(axFlash); 
    } 
} 
+0

, так что вы говорите, что это невозможно сделать с помощью простого кода, не так ли? – rasputin

+0

Не совсем невозможно, на самом деле это очень просто. Это одна строка кода: this.Controls. Удалите (axFlash), я просто покажу остальную часть кода, чтобы дать проверенный пример, который сработал. –

+0

спасибо за другой подход (на самом деле взломать). – rasputin