Что нового

[Элементы GUI] Много флешек (swf) в одном интерфейсе

Старик

Новичок
Сообщения
2
Репутация
0
Всем доброго времени суток.
Пытаюсь сделать интерфейс для большого количества флеш игр.
Что-бы можно было выбирать их через treeview.
Что-то не получается. Поможете?

Код:
#include<guiconstantsex.au3>
#include<windowsconstants.au3>
#include<treeviewconstants.au3>
#include<staticconstants.au3>

$gamesgui = GUICreate("Интерфейс для игр", 904, 593)
$treeview = GUICtrlCreateTreeView(624, 0, 273, 585)
$group1 = GUICtrlCreateTreeViewItem("На память", $treeview)
$cveta = GUICtrlCreateTreeViewItem("Цвета на память", $group1)
$saper = GUICtrlCreateTreeViewItem("Сапер", $group1)
$majong = GUICtrlCreateTreeViewItem("маджонг", $group1)

#region swf
$cveta1 = ObjCreate("shockwaveflash.shockwaveflash.10")
;~ $cveta_swf=GUICtrlCreateObj($cveta1,0,0,624,584)
With $cveta1
;~ 	.movie = @ScriptDir & '\MemoryTest.swf'
	.movie = 'http://www.absolutist.ru/online/memory/memorytest.swf'
	.wmode = 'opaque'
	.allowscriptaccess = 'always'
	.playing = True
EndWith

$saper1 = ObjCreate("shockwaveflash.shockwaveflash.10")
;~ $saper_swf=GUICtrlCreateObj($saper1,0,0,624,584)
With $saper1
;~ 	.movie = @ScriptDir & '\40.swf'
	.movie = 'http://testograd.ru/htm/f/40.swf'
	.wmode = 'opaque'
	.allowscriptaccess = 'always'
	.playing = True
EndWith
#endregion swf

GUISetState()
While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $cveta
			$cveta_swf = GUICtrlCreateObj($cveta1, 0, 0, 624, 584)
		Case $saper
			$saper_swf = GUICtrlCreateObj($saper1, 0, 0, 624, 584)
		Case -3
			Exit
	EndSwitch
WEnd
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
А если так ?:
Код:
#include <IE.au3>

$oIE = _IECreateEmbedded()
$gamesgui = GUICreate("Интерфейс для игр", 904, 593)
$treeview = GUICtrlCreateTreeView(624, 0, 273, 585)
$group1 = GUICtrlCreateTreeViewItem("На память", $treeview)
$cveta = GUICtrlCreateTreeViewItem("Цвета на память", $group1)
$saper = GUICtrlCreateTreeViewItem("Heavy Metal Rider", $group1)
$majong = GUICtrlCreateTreeViewItem("Poker Machine", $group1)
$ActiveX = GUICtrlCreateObj($oIE, 0, 0, 624, 584)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $cveta
            _IENavigate($oIE, 'http://www.absolutist.ru/online/memory/memorytest.swf')
        Case $saper
			_IENavigate($oIE, 'http://swf-games.ru/online-swf/heavymetalrider_game.swf')
		Case $majong
			_IENavigate($oIE, 'http://swf-games.ru/online-swf/poker-machine.swf')
        Case -3
            Exit
    EndSwitch
WEnd
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Старик
Вот ваш вариант
Код:
#include<guiconstantsex.au3>
#include<windowsconstants.au3>
#include<treeviewconstants.au3>
#include<staticconstants.au3>

; Сами игры должны лежать в папке @ScriptDir & '\swfgames\' на диске.
Dim $aUrl[3] = ['memorytest.swf', '8.swf', '1005.swf']

$hGUI		= GUICreate("Интерфейс для игр", 904, 593)
$hTreeView	= GUICtrlCreateTreeView(624, 0, 273, 585)
$hGroup1	= GUICtrlCreateTreeViewItem("На память", $hTreeView)
$aItem1		= GUICtrlCreateTreeViewItem("Цвета на память", $hGroup1)
$aItem2		= GUICtrlCreateTreeViewItem("Сапер", $hGroup1)
$aItem3		= GUICtrlCreateTreeViewItem("Маджонг", $hGroup1)

$hObj		= ObjCreate("ShockwaveFlash.ShockwaveFlash")
$hObjCtrl	= GUICtrlCreateObj($hObj, 0, 0, 624, 584)

GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $aItem1
			_LoadGame($hObj, @ScriptDir & '\swfgames\' & $aUrl[0])
		Case $aItem2
			_LoadGame($hObj, @ScriptDir & '\swfgames\' & $aUrl[1])
		Case $aItem3
			_LoadGame($hObj, @ScriptDir & '\swfgames\' & $aUrl[2])

	EndSwitch
WEnd

Func _LoadGame($o_Obj, $s_Url, $s_WMode = 'opaque', $s_Access = 'always', $i_Play = 1)
	
	With $o_Obj
		.LoadMovie(0, $s_Url)
		.WMode = $s_WMode
		.Menu = False
		.AllowScriptAccess = $s_Access
		.Playing = $i_Play
	EndWith
EndFunc


P.S. Затея в принципе интересная, сделать менеджер для flash игр.
 
Верх