objective-c et flash

tarultarul Membre
avril 2007 modifié dans API AppKit #1
Bonsoir à  tous,
J'ai une idée(qui est loin d'être nouvelle, mais j'aimerais produire un équivalent/amélioration) de projet. Le second objectif est d'apprendre plus sur le développement sur Mac os, et comme le montre Mala avec son application rien ne vaut qu'une véritable pour tout apprendre. :)

Bref, j'en suis plutôt a une étude de faisabilité. Je suis à  la recherche d'une solution (libre ou peu cher) pour générer une animation interactive en flash (a destination du web essentiellement).
Mes recherches m'ont donnée des framework en C(http://www.flagstonesoftware.com/transform/index.html) ou encore java(http://www.flagstonesoftware.com/transform/index.html), mais en objective-c je n'ai rien trouvé de potable. Du coté d'apple, il ne reste qu'une référence d'exportation en flash par l'API QT et de NSView, mais c'est du flash 4 et qui (semble t'il) n'est plus réellement supporté.
Connaissait vous un tel framework?
L'interconnexion entre un programme objective-c et un programme/librairie java est elle possible? J'aimerai tant que possible éviter de faire trop intervenir java, je le garde comme solution de repli.
edit : pour l'interconnexion je viens de trouver : http://www.cocoadev.com/index.pl?XcodeObjCJavaBridge

La librairie libming ne semble pas mal, mais je n'arrive pas à  la compiler sur mon MBP intel. La librairie java me semble plus simple d'accès.

Merci d'avance pour votre coups de main.

Réponses

  • CeetixCeetix Membre
    08:27 modifié #2
    Je me permet d'upper le post pour savoir s'il y avait un moyen d'intégrer Flash dans une appli Cocoa. Je cherche mais je ne trouve pas.
  • NoNo Membre
    08:27 modifié #3
    dans 1233855304:

    Je me permet d'upper le post pour savoir s'il y avait un moyen d'intégrer Flash dans une appli Cocoa. Je cherche mais je ne trouve pas.


    A travers une webView...
  • CeetixCeetix Membre
    08:27 modifié #4
    oui alors j'y ai pensé. j'ai meme fait une ptite apli juste vite fait avec un bouton qui permet de charger mon site. Quand je clique dessu, rien à  faire il me met: Debugger has canceled () . Je comprends pas pourquoi.
  • CéroceCéroce Membre, Modérateur
    08:27 modifié #5
    dans 1233907216:

    A travers une webView...

    Ne peut-on pas utiliser une QTMovieView, sachant que QuickTime lit certains fichiers Flash ?
  • CeetixCeetix Membre
    08:27 modifié #6
    Le truc c'est que mon flash envoie des données qui seront récupérées par mon app. D'ailleur si mon flash envoie du texte comment mon app peut le recupérer? J'avais pensé à  envoyer le texte sur une BDD et que mon app le retire. Si vous avez plus simple je suis preneur ^^
  • schlumschlum Membre
    février 2009 modifié #7
    dans 1233907216:

    dans 1233855304:

    Je me permet d'upper le post pour savoir s'il y avait un moyen d'intégrer Flash dans une appli Cocoa. Je cherche mais je ne trouve pas.


    A travers une webView...


    Ils me semble que les WebViews ne chargent pas les plug-ins...
    Peut-être qu'il y a une technique pour les charger, mais jamais vu de logiciels basés sur les WebViews supportant le Flash.
  • CeetixCeetix Membre
    08:27 modifié #8
    Ah crotte, je suis fichu donc ...
  • NoNo Membre
    08:27 modifié #9
    dans 1233922054:

    Ils me semblent que les WebViews ne chargent pas les plug-ins...
    Peut-être qu'il y a une technique pour les charger, mais jamais vu de logiciels basés sur les WebViews supportant le Flash.


    N'importe quoi !
    T'as lu ça où ?
    En 3 minutes, dans un projet xcode, c'est facilement vérifiable de voir qu'une webview charge le player flash et permet de visualiser les swf...

    Pour exemple, j'ai fait l'essai sur une video youtube.
    1. dans le projet, j'ai mis dans les ressources un petit fichier html nommé html.htm :
    <br />&lt;html&gt;<br />&nbsp; &lt;body&gt;<br />&nbsp; &nbsp; &lt;embed<br />&nbsp; &nbsp; &nbsp; xflashvars=&quot;q=pub%20get%20a%20mac%60&amp;amp;fexp=900061&amp;amp;vq=null&amp;amp;sourceid=ys&amp;amp;video_id=LTJ3F1NGE_U&amp;amp;l=30&amp;amp;sk=WD7XBHApYG5lppixfZPr-LqGU_0cLwKzC&amp;amp;fmt_map=&amp;amp;usef=0&amp;amp;t=OEgsToPDskJ5KH3Gjm80hirMOEt2oQuQ&amp;amp;hl=fr&amp;amp;plid=AARiRarKrHNlo_BEAAAAoAAQAAA&amp;amp;cr=FR&amp;amp;playnext=0&amp;amp;enablejsapi=1&quot;<br />&nbsp; &nbsp; &nbsp; allowscriptaccess=&quot;always&quot;<br />&nbsp; &nbsp; &nbsp; id=&quot;player&quot;<br />&nbsp; &nbsp; &nbsp; style=&quot;width:100%; height:100%&quot;<br />&nbsp; &nbsp; &nbsp; src=&quot;http://s.ytimg.com/yt/swf/watch-vfl76660.swf&quot;<br />&nbsp; &nbsp; &nbsp; type=&quot;application/x-shockwave-flash&quot;&gt;<br />&nbsp; &nbsp; &lt;/embed&gt;<br />&nbsp; &lt;/body&gt;<br />&lt;/html&gt;<br />
    


    2. dans le code de chargement de la webview (son outlet est wb) :
    <br />{<br />&nbsp;  NSString *p=[[NSBundle mainBundle] pathForResource:@&quot;html&quot; ofType:@&quot;htm&quot;];<br />&nbsp;  [[wb mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:p]]];<br />}<br />
    


    3. il ne reste plus qu'à  regarder la pub "Get a mac".


    Note : par accès au DOM via le pont javascript/objective-c, il est facile de modifier par programmation l'attribut src de la balise <embed> pour y mettre l'url d'un autre swf.
  • CeetixCeetix Membre
    08:27 modifié #10
    Ahhhhhhhh me voilà  rassuré, mon projet n'est pas à  l'eau ^^. Enfin ne prend pas ainsi à  Schlum  :) .
    Je pige pas je fais pareil que toi et là  je refais avec ton exemple et ça ne marche pas. j'ai :

    " Debugger() was called! "

    Voici mon code:

    .h

    <br />#import &lt;Cocoa/Cocoa.h&gt;<br />#import &lt;WebKit/WebKit.h&gt;<br />@interface Foo : NSObject {<br />&nbsp; &nbsp; IBOutlet WebView *wb;<br />}<br />- (IBAction)val:(id)sender;<br />@end<br /><br />
    



    .m
    <br />#import &quot;Foo.h&quot;<br /><br />@implementation Foo<br />- (IBAction)chargerPage:(id)sender<br />{<br />	NSString *p=[[NSBundle mainBundle] pathForResource:@&quot;html&quot; ofType:@&quot;htm&quot;];<br />	[[wb mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:p]]];<br />}<br />@end<br />
    


    J'ai bien importé mon Framework et ajouté dans ressource le html.htm .
  • NoNo Membre
    08:27 modifié #11
    Je joins le projet avec lequel j'ai fait le test.
  • NoNo Membre
    08:27 modifié #12
    dans 1233955476:

    " Debugger() was called! "

    dans 1233909016:

    Debugger has canceled ()


    Que dit la console quand tu lances ton projet en mode debug ?
    (POMME Y pour compiler/exécuter, puis menu Run>Console pour afficher la console).
  • CeetixCeetix Membre
    08:27 modifié #13
    Ca me met ça :


    Program received signal:  “EXC_BAD_ACCESS”.
    [Switching to process 8507 thread 0x5803]
    [Switching to process 8507 thread 0x5803]
    Cannot access memory at address 0x4
    Cannot access memory at address 0x4
  • CeetixCeetix Membre
    08:27 modifié #14
    Très bizar. Quand je me met en console avec ton projet ca me met :

    Debugger() was called!
    =shlibs-removed,shlib-info=[num="100",name="JavaPluginCocoa",kind="B",dyld-addr="0x15bd7000",reason="dyld",requested-state="E",state="E",path="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Resources/JavaPluginCocoa.bundle/Contents/MacOS/JavaPluginCocoa",description="/System/Library/Frameworks/JavaVM.framework/Versions/1.5.0/Resources/JavaPluginCocoa.bundle/Contents/MacOS/JavaPluginCocoa",loaded_addr="0x15bd7000",slide="0x15bd7000",prefix=""]
  • NoNo Membre
    08:27 modifié #15
    dans 1233957524:

    Program received signal:  “EXC_BAD_ACCESS”.
    [Switching to process 8507 thread 0x5803]
    [Switching to process 8507 thread 0x5803]
    Cannot access memory at address 0x4
    Cannot access memory at address 0x4

    Y'a un problème de mémoire...
    Ca sent l'utilisation d'un objet qui a été releasé.
    Mais ne connaissant pas ton code, difficile de dire.
  • CeetixCeetix Membre
    08:27 modifié #16
    Bah mon code c'est qu'il y a plus haut.
    Je te joints mon projet si tu veux regarder .

  • NoNo Membre
    08:27 modifié #17
    dans 1233958176:

    Bah mon code c'est qu'il y a plus haut.
    Je te joints mon projet si tu veux regarder .

    Sauf que c'est le mien...
    pas le tien.
    Et donc ça marche !
  • CeetixCeetix Membre
    08:27 modifié #18
    Ro le boulet ... J'ai trop veiller ...  :crackboom:-
  • NseaProtectorNseaProtector Membre
    08:27 modifié #19
    j'ai testé ton projet chez moi (macbook intel) et no soucis, a mon avis reboot ta machine dans un premier temps et assure toi que Safari est a jour avec les plugin's qui vont bien.
  • schlumschlum Membre
    février 2009 modifié #20
    dans 1233952768:

    dans 1233922054:

    Ils me semble que les WebViews ne chargent pas les plug-ins...
    Peut-être qu'il y a une technique pour les charger, mais jamais vu de logiciels basés sur les WebViews supportant le Flash.


    N'importe quoi !
    T'as lu ça où ?


    T'excite pas, j'ai dit " il me semble "  :o
    Juste parce que ça fait plusieurs fois que j'ai vu des logiciels "Webviews" qui ne supportent pas le flash, c'est tout... (dont le très connu NetNewsWire).
    Mais c'est peut-être lié au JavaScript, j'en sais rien...

    [Edit] Du coup j'ai trouvé comment activer le flash dans NetNewsWire, merci pour l'info  :)
  • schlumschlum Membre
    février 2009 modifié #21
    dans 1233952768:

    Pour exemple, j'ai fait l'essai sur une video youtube.
    1. dans le projet, j'ai mis dans les ressources un petit fichier html nommé html.htm :
    <br />&lt;html&gt;<br />&nbsp; &lt;body&gt;<br />&nbsp; &nbsp; &lt;embed<br />&nbsp; &nbsp; &nbsp; xflashvars=&quot;q=pub%20get%20a%20mac%60&amp;amp;fexp=900061&amp;amp;vq=null&amp;amp;sourceid=ys&amp;amp;video_id=LTJ3F1NGE_U&amp;amp;l=30&amp;amp;sk=WD7XBHApYG5lppixfZPr-LqGU_0cLwKzC&amp;amp;fmt_map=&amp;amp;usef=0&amp;amp;t=OEgsToPDskJ5KH3Gjm80hirMOEt2oQuQ&amp;amp;hl=fr&amp;amp;plid=AARiRarKrHNlo_BEAAAAoAAQAAA&amp;amp;cr=FR&amp;amp;playnext=0&amp;amp;enablejsapi=1&quot;<br />&nbsp; &nbsp; &nbsp; allowscriptaccess=&quot;always&quot;<br />&nbsp; &nbsp; &nbsp; id=&quot;player&quot;<br />&nbsp; &nbsp; &nbsp; style=&quot;width:100%; height:100%&quot;<br />&nbsp; &nbsp; &nbsp; src=&quot;http://s.ytimg.com/yt/swf/watch-vfl76660.swf&quot;<br />&nbsp; &nbsp; &nbsp; type=&quot;application/x-shockwave-flash&quot;&gt;<br />&nbsp; &nbsp; &lt;/embed&gt;<br />&nbsp; &lt;/body&gt;<br />&lt;/html&gt;<br />
    


    2. dans le code de chargement de la webview (son outlet est wb) :
    <br />{<br />&nbsp; &nbsp;NSString *p=[[NSBundle mainBundle] pathForResource:@&quot;html&quot; ofType:@&quot;htm&quot;];<br />&nbsp; &nbsp;[[wb mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:p]]];<br />}<br />
    


    3. il ne reste plus qu'à  regarder la pub "Get a mac".


    Fonctionne pas chez moi le truc YouTube... J'ai pris ton projet et j'ai remplacé le contenu de html.htm par ce que t'as mis là , et j'ai bien un player YouTube qui s'affiche et qui est... une belle coque vide.

    [Edit] Cela dit, il ne fonctionne pas non plus dans Safari...

    [Edit2] ça fonctionne mieux avec le code fourni par YouTube qui a un mix <object> <embed>
  • CeetixCeetix Membre
    08:27 modifié #22
    Eh bien même en effectuant la mise à  jour safari et en rebootant ça ne marche pas. Ca plante toujours.  :'( Je comprends plus rien là 
  • NoNo Membre
    08:27 modifié #23
    dans 1233994159:

    Eh bien même en effectuant la mise à  jour safari et en rebootant ça ne marche pas. Ca plante toujours.  :'( Je comprends plus rien là 


    Y'a un truc pas net sur ta machine.
    Quelle version as tu ?
    As tu des messages bizarre dans la console système lorsque tu lances le projet test ?
  • CeetixCeetix Membre
    08:27 modifié #24
    Bon j'a refait le code et en marquant juste :
    <br />&lt;html&gt;<br />&lt;body&gt;<br />&lt;p&gt;Hello&gt;/p&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />
    


    Apres quand j'essai de mettre un object ca me fait encore cette erreur.
  • CeetixCeetix Membre
    08:27 modifié #25
    Ok bah le flash là  ca plante en fait.
    J'aimerai savoir comment Schlum a fait ...
    Voici la page que j'essai d'afficher : http://morse.wayfarer.fr/files/essai.html
  • CeetixCeetix Membre
    08:27 modifié #26
    J'hallucine, je comprendrai donc jamais. Quand je faisais Build and go le flash marchait pas. Je release mon app et je lance l'app sans xcode et là  ca marche ... Mystere...
Connectez-vous ou Inscrivez-vous pour répondre.