Page 1 sur 1
[..] GUI avec SWF Contrôlable
Posté : dim. 04 sept. 2011 22:35
par baalloo45
Salut, j'aimerai crée une fenêtre (Gui) avec des décors swf.
Alors, j'aimerai savoir comment voir les swf dans la fenêtre (pas de blanc) et dans ces swf il y a 1 input et 1 bouton (Qui font parti de celui ci)
Mon but serait qui soit programmable sous cette forme $input1 $button.
Je veux cela pour un logiciel d’inscription.
Merci
Re: [..] GUI avec SWF Contrôlable
Posté : dim. 04 sept. 2011 23:36
par legend
je pense qu'il n'y a aucunes fonctions qui gèrent le contenu flash sur autoit.
flash ressemble a un langage avec un framework. swf c'est aussi compilé ce qui rend l'accès plus dur.
il sera plus facile de recréer le contenu de ton .swf en code autoit (gère les evenements). voit du coté GDI ça peut te prendre pas mal de temps pour créer une bonne animation (regarde les udf de matwachich ^^)
Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 10:09
par mikell
On peut intégrer un swf à une gui mais pas gérer ses controles avec autoit
2 solutions : tricher en créant une 2ème gui avec les mêmes controles par-dessus
► Afficher le texte
Code : Tout sélectionner
#include <WindowsConstants.au3>
#include <GUIConstantsEx.au3>
Global $oRP = ObjCreate("ShockwaveFlash.ShockwaveFlash.1")
$gui =GUICreate ("Flash", 820, 600, -1, -1)
$GUIActiveX = GUICtrlCreateObj( $oRP, 10, 10 , 800 , 580)
With $oRP
.bgcolor = "#000000"
.Movie = @WindowsDir & '\Help\Tours\mmTour\intro.swf';
.ScaleMode = 2
.Loop = True
.wmode = "Opaque"
.FlashVars = ""
EndWith
GUISetState ()
$gui2 = GUICreate ("", 80, 25, 400, 500, $WS_POPUP, $WS_EX_TOPMOST + $WS_EX_MDICHILD, $gui)
GuiCtrlCreateButton("bouton", 0, 0, 80, 25)
GUICtrlSetState(-1, $GUI_ONTOP)
GUISetState ()
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
$oRP = 0
GUIDelete ()
Exit
ou alors comme dit legend décompiler le swf, récupérer ses ressources et construire une gui "traditionnelle"
Tu peux aussi oublier autoit et travailler exclusivement en Flash (mais là on parle d'autre chose...)
Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 10:33
par bob
Bonjour,
Pour simple essai, je viens d'essayer le code, mais j'ai 1 erreur :
Only Object-type variables allowed in a "With" statement.:
With $oRP
With ^ ERROR
A votre avis, que faut-il changer ?
D'avance, merci.
Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 10:59
par PandiPanda
sinon pour juste afficher le .swf sans pouvoir le "manier" on peux toujours passer par;
► Afficher le texteEn bonus "never say no to Panda"
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Example()
Func Example()
Local $oIE, $GUIActiveX,$msg,$pathSwf="http://noelswf.info/swf/1342.swf"
$oIE = ObjCreate("Shell.Explorer.2")
; Create a simple GUI for our output
GUICreate("Embedded Web control Test", 640, 580, (@DesktopWidth - 640) / 2, (@DesktopHeight - 580) / 2, _
BitOR($WS_OVERLAPPEDWINDOW, $WS_CLIPSIBLINGS, $WS_CLIPCHILDREN))
$GUIActiveX = GUICtrlCreateObj ($oIE, 10, 40, 600, 360)
GUISetState() ;Show GUI
$oIE.navigate($pathSwf)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
EndSelect
WEnd
GUIDelete()
EndFunc ;==>Example
à noter que la méthode de mikell est bien meilleur

Edit; le code poster plus haut, fonctionne parfaitement pour moi ...
Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 12:10
par mikell
Détail oublié : le code utilise comme fichier-test
qui est présent nativement sur mon XP SP3, mais qui n'existe peut-être pas sur d'autres OS
Donc il faut modifier cette ligne dans le code et tester un swf présent sur le PC (les dimensions de la gui et du controle ActiveX seront à adapter)

Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 12:13
par PandiPanda
ceci donne pas mal ^^
► Afficher le texte
Code : Tout sélectionner
$gui = GUICreate ("Flash", 600, 520, -1, -1)
$GUIActiveX = GUICtrlCreateObj( $oRP,10,10 , 580 , 500)
;...
With $oRP
.bgcolor = "#FFFFFF"
.Movie ="http://noelswf.info/swf/1342.swf"
.ScaleMode = 2
.Loop = True
.wmode = "Opaque"
.FlashVars = ""
EndWith
;...
Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 12:20
par mikell
Marrant... mais comme apparemment il s'agit de faire un exe il aurait fallu faire un InetGet d'abord pour rendre le swf résident

Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 12:52
par pierrotm777
Je m'était penché sur ce sujet il y a quelques temps:
► Afficher le texte
Code : Tout sélectionner
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$WindowsName = "Splash"
$Left = 0
$Top = 0
$WidthSWF = 800
$HeightSWF = 600
$SwfScale = 3;Scale (only SWF:0 showall, 1 noborder, 2 exactFit, 3 noscale)
$SwfBgcolor = ""; black="#000000" , white=""
$Transparency = 255;(0/255)
$SplashFiles = @ScriptDir & "\Ferrari.swf"
$I_ModeIn = 0x00040010
$I_ModeOff = 0x00050010
$I_Speed = 1000
Swf()
Func Swf()
Dim $hGUI, $FlashCtrl
Dim $oFlash
Dim $fError = False
;$hGUI = GUICreate($WindowsName, 550, 400)
$hGUI = GUICreate($WindowsName,$WidthSWF,$HeightSWF,$Left,$Top,$WS_POPUP, $WS_EX_TOPMOST)
WinSetTrans ($hGui, '', $Transparency)
$Annuler = GUICtrlCreateButton("QUIT", 700, 550, 100, 50)
GUICtrlSetTip(-1, "Exit the Program !")
$oFlash = ObjCreate("ShockwaveFlash.ShockwaveFlash.10")
$oAutoItError = ObjEvent("AutoIt.Error", "COMError")
;$FlashCtrl = GUICtrlCreateObj($oFlash, 0, 0, 550, 400)
$FlashCtrl = GUICtrlCreateObj($oFlash, $Left, $Top, $WidthSWF, $HeightSWF)
;GUISetOnEvent($GUI_EVENT_CLOSE, 'exit')
With $oFlash
; Put the file string here.
.Movie = $SplashFiles
#cs Example
.Movie = "http://64.191.61.82/albino_games04/curveball(www.albinoblacksheep.com).swf"
.Base = "http://www.albinoblacksheep.com/flash/curveball"
#ce
.wmode = "opaque";opaque or transparent
.allowScriptAccess = "Always"
.Playing = True
.ScaleMode = $SwfScale; 0 showall, 1 noborder, 2 exactFit, 3 noscale
.bgcolor = $SwfBgcolor; black="#000000" , white=""
.Loop = False
_WinAnimate($hGui,$I_ModeIn,$I_Speed)
;If $Sound = "Play" Then _Play()
;If $Sound = "Speak" Then _TalkOBJ($Sentence)
EndWith
GUISetState()
While 1
$msg = GUIGetMsg()
Switch $msg
Case $GUI_EVENT_CLOSE, $Annuler
SplashTextOn("Exit Program", "You skip the " & _
"SWF application !!!", 250, 80, $WidthSWF/3, $HeightSWF/2.5, 0, "", 12, 800)
_WinAnimate($hGui,$I_ModeOff,$I_Speed)
$oFlash.Stop()
$oFlash = 0
GUIDelete()
;LaunchAppli()
Exit
EndSwitch
WEnd
EndFunc;Swf End
Func COMError()
$fError = True
EndFunc
Func _WinAnimate($v_gui, $i_mode, $I_Duration = 1000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", WinGetHandle($v_gui), "int", $I_Duration, "long", $i_mode)
Local $ai_gle = DllCall('kernel32.dll', 'int', 'GetLastError')
If $ai_gle[0] <> 0 Then
SetError(1)
Return 0
EndIf
Return 1
EndFunc ;==> _WinAnimate()
Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 16:45
par mikell
Heu oui, et qu'est-ce qu'il nous apprend de plus ce script, à part le fait qu'il ne marche pas ?

Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 17:44
par pierrotm777
Désolé, j'avais fait une copie un peu trop rapide !
J'ai mis à jour l'exemple !
Re: [..] GUI avec SWF Contrôlable
Posté : lun. 05 sept. 2011 20:39
par baalloo45
Lock - Abandon