2 / 2 / 0
Регистрация: 15.02.2010
Сообщений: 26
1

Как проиграть flash ролик в своём приложении?

28.09.2012, 08:19. Показов 1026. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток! Люди как проиграть flash ролик в своём приложении?
Нашёл такой пример:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
// 
// SWF In Window Example
// by Napalm
// 
 
#import "C:\windows\system32\macromed\flash\flash.ocx" rename_namespace("Flash")
#pragma comment(lib, "atl")
#include  <atlbase.h>
CComModule _Module;
#include <atlwin.h>
#include <windows.h>
#include <string.h>
 
HINSTANCE g_hInst;
 
 
LRESULT CALLBACK WndProc(HWND hWnd, UINT uMessage, WPARAM wParam, LPARAM lParam)
{
    static Flash::IShockwaveFlash* m_pFlash;
    static HWND hWndActiveX;
    switch(uMessage)
    {
    case WM_CREATE:
        {
            WCHAR wcPath[MAX_PATH];
            RECT rc; GetClientRect(hWnd, &rc);
            hWndActiveX = CreateWindowEx(0, L"AtlAxWin", NULL, WS_CHILD | WS_VISIBLE,
                0, 0, rc.right, rc.bottom, hWnd, NULL, g_hInst, NULL);
            if(FAILED(CoCreateInstance(__uuidof(Flash::ShockwaveFlash), NULL, CLSCTX_ALL,
                __uuidof(Flash::IShockwaveFlash), (void**)&m_pFlash)))
                return -1;
            if(FAILED(AtlAxAttachControl(m_pFlash, hWndActiveX, NULL))){
                m_pFlash->Release();
                return -1;
            }
            GetCurrentDirectoryW(MAX_PATH, wcPath);
            wcscat(wcPath, L"\\shapes.swf");
            HRESULT hres = m_pFlash->LoadMovie(0, wcPath);
            m_pFlash->Menu = VARIANT_FALSE;
        }
        return 0;
 
    case WM_SIZE:
        MoveWindow(hWndActiveX, 0, 0, LOWORD(lParam), HIWORD(lParam), TRUE);
        return 0;
 
    case WM_PAINT:
    case WM_ERASEBKGND:
        ValidateRect(hWnd, NULL);
        return 0;
 
    case WM_DESTROY:
        DestroyWindow(hWndActiveX);
        m_pFlash->Release();
        PostQuitMessage(0);
        return 0;
    }
 
    return DefWindowProc(hWnd, uMessage, wParam, lParam);
}
 
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrev, LPSTR lpCmdLine, int nCmdShow)
{
    CoInitialize(NULL);
    AtlAxWinInit();
    g_hInst = hInstance;
 
    WNDCLASSEX wcex = {
        sizeof(WNDCLASSEX), 0, WndProc, 0, 0, g_hInst, LoadIcon(NULL, IDI_APPLICATION),
        LoadCursor(NULL, IDC_ARROW), (HBRUSH)(COLOR_WINDOW + 1), NULL, L"SWFWin", NULL,
    };
    if(!RegisterClassEx(&wcex))
        return MessageBox(HWND_DESKTOP, L"Could not register class!", L"Error", MB_ICONERROR | MB_OK);
 
    int nX = ((GetSystemMetrics(SM_CXSCREEN) - 400) / 2),
        nY = ((GetSystemMetrics(SM_CYSCREEN) - 340) / 2);
    HWND hWnd = CreateWindowEx(0, wcex.lpszClassName, L"SWF In Window Example - by Napalm",
        WS_OVERLAPPEDWINDOW, nX, nY, 400, 340, HWND_DESKTOP, NULL, g_hInst, NULL);
    if(!hWnd)
        return MessageBox(HWND_DESKTOP, L"Could not create window!", L"Error", MB_ICONERROR | MB_OK);
 
    ShowWindow(hWnd, nCmdShow);
 
    MSG Msg;
    while(GetMessage(&Msg, NULL, 0, 0)){
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
 
    CoUninitialize();
    return (int)Msg.wParam;
}
Заменил строку
C++
1
#import "C:\windows\system32\macromed\flash\flash.ocx" rename_namespace("Flash")
на #import "C:\windows\system32\macromed\flash\Flash64_11_2_202_235.ocx" rename_namespace("Flash") компилятор начил выдавать ошибку мол немогу найти такой файл. После файлы Flash64_11_2_202_235.ocx и FlashUtil64_11_2_202_235_ActiveX.dll положил к сибе в проект и соответственно заменил ту строку с импортом на #import "Flash64_11_2_202_235.ocx" rename_namespace("Flash"). Всё стало компилироваться, но не хочет работать... загружается окно а ролик не проигрывается...

Добавлено через 17 часов 21 минуту
Почему то мне кажется, что я как то неправильно подключаю ActiveX компонент...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.09.2012, 08:19
Ответы с готовыми решениями:

Проиграть ролик в обратную сторону
stop(); f1.onPress = function() { play(); }; f1.onRelease = function() { stop(); };...

Как сделать самозапускающийся ролик во flash
Здравствуйте! Делаю мультимедийное пособие со флеш. Хочется чтоб было самозапускающимся если...

Как запихать Flash ролик в *.exe файл?
Помогите запихать Flash ролик в *.exe файл. John

Как вместить Flash ролик в программу на Delphi 8 ???
Как вместить Flash ролик в программу на Delphi 8 ??? Если кто знает , то подскажите пожалуста ...

0
28.09.2012, 08:19
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.09.2012, 08:19
Помогаю со студенческими работами здесь

Как поставить flash ролик в центр экрана CSS
Как разместить ролик размером 300px на 300px в центр экрана, а то когда в процентах выставляю то на...

Как воспроизвести flash ролик на форме простого GUI приложения?
Вс ре решил создать отдельную тему. Может есть у кого - нибуть соображения, как воспроизвести SWF...

Как установить автоматическое отлючение дисплея, если проигрывается какой-нибудь flash-ролик?
Друзья! Вот настройки автоматического отлючения дисплея. Но естессно, дисплей не погаснет, если...

DirectShow, проиграть видео в своем окне?
IGraphBuilder::RenderFile играет в отдельном окне, реально ли как то проиграть файл в своем уже...

Как работать с html в своём приложении?
Хочу написать программу, (в общем что-то типа калькулятора, а именно &quot;Оценка возможности...

FastReport - Как его использовать в своем приложении
Здравствуйте! Подскажите - Как и каким образом и можно ли вообще создать отчет в среде разработки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru