Что нового

[Элементы GUI] Использование SWF-файлов в GUI

forfrends

Новичок
Сообщения
176
Репутация
3
Добрый день!
Подскажите, как в обычном окне GUI разместить SWF-файл? Хочется его поместить в ресурсы программы и использовать по принципу, описанному здесь: http://autoit-script.ru/index.php/topic,2849.msg20796.html#msg20796
С обычными картинками все без проблем, а вот SWF вообще никак не отображается.
Пример SWF-файла прилагаю
 
Автор
F

forfrends

Новичок
Сообщения
176
Репутация
3
Лучше выкладывать на сторонних файлохранилищах.
Всего то 1.5 килобайт...

Только что попробовал отредактировать сообщение, убрать файл и дать на него ссылку - не хочет сохраняться, выдает какую-то ошибку.

Все же, есть какие-то решения по моему вопросу?
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
forfrends [?]
Подскажите, как в обычном окне GUI разместить SWF-файл?
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 800, 600, -1, -1)
$Obj1 = ObjCreate("ShockwaveFlash.ShockwaveFlash.1")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 800, 600)
$Obj1.Movie = @ScriptDir & '\ani.swf'
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit

	EndSwitch
WEnd
 
Автор
F

forfrends

Новичок
Сообщения
176
Репутация
3
Garrett, я готов лбом о стену биться, так как перед тем как написать на форум, то пробовал что-то похожее - не работало! :stars:
Ваша версия работает отлично! Спасибо большое за помощь!


Добавлено:
Сообщение автоматически объединено:

А как сделать так что бы ani.swf подгружался из ресурсов самой программы?
так не работает:
Код:
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_Res_File_Add=ani.swf, DATA, TECH
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#Include <WinAPIEx.au3>

$Form1 = GUICreate("Form1", 800, 600, -1, -1)
$Obj1 = ObjCreate("ShockwaveFlash.ShockwaveFlash.1")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 800, 600)
$hInstance = _WinAPI_GetModuleHandle(0)
$tData = _LoadResourceData($hInstance, "DATA", "TECH")
$Obj1.Movie = $tData
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit

    EndSwitch
WEnd

Func _LoadResourceData($hInstance, $sResType, $sResName, $iResLanguage = 0)

    Local $hInfo, $hData, $pData, $iSize

    If $iResLanguage Then
        $hInfo = _WinAPI_FindResourceEx($hInstance, $sResType, $sResName, $iResLanguage)
    Else
        $hInfo = _WinAPI_FindResource($hInstance, $sResType, $sResName)
    EndIf
    $hData = _WinAPI_LoadResource($hInstance, $hInfo)
    $iSize = _WinAPI_SizeOfResource($hInstance, $hInfo)
    $pData = _WinAPI_LockResource($hData)
    If @error Then
        Return SetError(1, 0, "")
    EndIf
    Return SetError(0, $iSize, DllStructCreate("byte[" & $iSize & "]", $pData))
EndFunc   ;==>_LoadResourceData



Добавлено:
Сообщение автоматически объединено:

Подскажите, как выполнить клик по анимации?
Пробовал так, но не работает:

Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate("Form1", 800, 600, -1, -1)
$Obj1 = ObjCreate("ShockwaveFlash.ShockwaveFlash.1")
$Obj1_ctrl = GUICtrlCreateObj($Obj1, 0, 0, 800, 600)
$Obj1.Movie = @ScriptDir & '\ani.swf'
GUISetState(@SW_SHOW)

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
        Case $Obj1
            MsgBox(0, "Test", "Кликнули по картинке")
    EndSwitch
WEnd


если вместо Case $Obj1 поставить Case $Obj1.Movie то программа постоянно выкидывает новые MsgBox
 
Верх