LimeSoda Blog ☰ Zeige Kategorien

clickTags in Actionscript 3

Während man bei Actionscript 2 den Code noch direkt in Buttons einfügen konnte, sind diese Zeiten zum Glück längst vorbei. In Actionscript 3 benötigt man zwar mehr Zeilen für das simple Programmieren einer Button-Funktion, allerdings hat der Flasher damit auch eine leistungsfähige Programmiersprache die sich stark an die Syntax von Java anlehnt und nicht mehr ganz so „proprietär“ ist.

Bei einer Verbreitung des Flash Player 10 von 99% (laut Adobe) kann man mit ruhigem Gewissen auch bei Werbebannern bereits vollständig auf AS2 verzichten:

Flash Player Verbreitung

Quelle: http://www.adobe.com/products/player_census/flashplayer/version_penetration.html

Der Code ist nicht allzu komplex, nachdem man einen unsichtbaren Button (mit einer hitArea in der Grösse des Projektes) in der Flash IDE angelegt und diesem einen Instanznamen vergeben hat braucht man einen Event Listener und eine Funktion die beim Klick des Buttons aufgerufen wird. In Actionscript 3 sieht das so aus:

Die Funktion „getClickTag“ liest den clickTag unabhängig von der verwendeten Schreibweise ein und liefert den jewiligen Link in der anonymen Funktion des Event Listeners. Während bei früheren Actionscript-Versionen die Funktion „getURL“ verwendet wurde, gestaltet es sich in Actionscript 3 etwas umständlicher. Die Funktion „navigateToURL“ erlaubt nicht die direkte Verwendung eines Links sondern erwartet ein URL-Request Objekt als Parameter.

In den meisten Fällen kann der Code bedenkenlos verwendet werden, problematisch wird es nur wenn mehrere clickTags verwendet werden. Im Normalfall lauten die Parameter dafür dann „clickTag1„, „clickTag2“ usw., der obige Code lässt sich dafür aber recht einfach adaptieren. Es muss ohnehin immer eine genau definierte Anzahl an clickTags verwendet werden, immerhin muss jeder Link einem bestimmten Button zugeordnet werden. Eine mögliche Lösung wäre also folgende:

Die „IAB Spezifikationen“ für Flash-Werbemittel wurden übrigens seit 2005 nicht mehr geändert und dürfen meiner bescheidenen Meinung nach getrost vernachlässigt werden. In 6 Jahren haben sich im Internet durchaus ein paar Dinge geändert.

Links

Kommentare

  • Hi und sorry für die späte Antwort!

    Die Probleme mit dem Popup-Blocker können zur Ursache eine veraltete Form der Einbettung haben. Zb sollte Flash immer per SWFObject eingebunden werden, ab Version 2.1 dürfte es in jedem Browser problemlos funktionieren das Popup zu öffnen.

    Man könnte das ganze auch mit der Klasse „ExternalInterface“ probieren:
    ExternalInterface.call(„window.open“, getClickTag(1), „_blank“);

    …oder „_blank“ durch „_self“ ersetzen.

    Antworten
  • Hallo Herr Andreas Teufel

    Ihr Scriopt ist super, funktioniert soweit alles.
    Hab leider aber ien Problem, dass bei IE und teil Firefox der Popupblocker reagiert, und die gewünschte seite nicht aufruft.
    Gibt es da eine Möglichkeit dieses Problem zu umgehen?

    David

    Antworten
  • good point, thank you for your input! i changed the code in the article :)

    Antworten
  • I’d -highly- recommend, nesting the ’navigateToURL‘ in a try/catch block. This prevents runtime errors with users having the debug Flash player installed.
    (http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/net/package.html#navigateToURL())

    Antworten

Hinterlasse einen Fingerabdruck für die Ewigkeit: Ein Kommentar bei LimeSoda!

(*) Pflichtfeld

Bewirb dich bei uns!

LimeSoda.
Digitalagentur in Wien.

Bewirb dich jetzt!
Andreas Teufel

Verpasse nicht den nächsten Blog-Post von Andreas!

Jetzt zum LimeSoda-Newsletter anmelden