2010-12-14 77 views
1

J'ai une application AIR qui charge mx:HTML s. Je voudrais bloquer les publicités qui s'y trouvent, tout comme Adblock Plus pour Firefox (voir http://adblockplus.org/en/). Je suis abonné au filtre Easylist USA. Je ne sais pas par où commencer l'interruption du processus HTML GET-ting dans actionscript. Actionscript htmlLoader Bloc annonces

var req:URLRequest = new URLRequest("http://www.google.com"); 
thisHtmlWindow.open(); 
thisHtmlWindow.htmlContent.htmlLoader.load(req); 
C'est là que je soupçonne que je peux ajouter le filtre HTTP. Ce serait bien de vous abonner au filtre et de le télécharger/mettre à jour périodiquement pour vous assurer que les principaux réseaux publicitaires sont bloqués.

Répondre

1

Bonne question. Je commencerais par intercepter le résultat qui reviendrait de la requête, en manipulant le HTML, puis en le chargeant dans le HTMLLoader. Pour ce faire, vous devez d'abord récupérer votre contenu à l'aide d'un URLLoader plutôt que du HTMLLoader. Après avoir obtenu et manipulé votre contenu, placez-le dans votre HTMLLoader en utilisant HTMLLoader.loadString. J'espère que cela pourra aider.

EDIT: Voici un petit code pour vous.

var urlLoader:URLLoader = new URLLoader(); 

public function loadUrl(url:String):void { 
    var request:URLRequest = new URLRequest(url); 
    _urlLoader.addEventListener(Event.COMPLETE, onHtmlLoaded); 
    _urlLoader.load(request); 
} 

private function onHtmlLoaded(event:Event):void { 
    _urlLoader.removeEventListener(Event.COMPLETE, onHtmlLoaded); 

    // This is where you can mess with the data before setting it 
    var content:String = _urlLoader.data as String; 

    myHtmlComponent.htmlLoader.loadString(content); 
} 
+0

Souhaitez-vous fournir le code de base pour accomplir ceci? Je peux le faire en perl et PHP assez facilement, mais Actionscript est probablement mon langage le plus faible. Je suis déjà configuré pour comparer ligne par ligne du fichier de liste facile. – ojreadmore