אני רוצה לקצר כתובת שנוצרת במהלך ריצה בפלאש באמצעות bitly (או כל שירות קיצור כתובת אמין יחסית, גוגל, tinyURL ודומים, גם טוב).
חיפוש מאוד קצר בגוגל מעלה את התוצאות האלו:
http://www.codingcolor.com/as3/as3-bit- ... shortener/
שזה כמובן עובד, אבל total overkill לדרישות שלי.
ו..
http://www.snipplr.com/view/25087/short ... ith-bitly/
שזה הקטע קוד הקצרצר הבא:
Using actionscript3 Syntax Highlighting
var pattern:RegExp = /(http[s]?:\/\/[\S]+)\s/ig;
txt.addEventListener(Event.CHANGE, function(event:Event):void{
var results:Array = txt.text.match(pattern);
if(results.length > 0) {
for(var i:int=0; i< results.length; i++){
if(results[i].indexOf("bit.ly")==-1){
shortenURL(results[i], handler)
}
}
}
private function shortedURL(url:String , handler:Function):void{
var bitlyURL:String = "http://api.bit.ly/shorten?version=2.0.1&format=xml&longUrl="+escape(url)+"&login="+LOGIN+"&apiKey="+API_KEY;
var urlLoader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest(bitlyURL);
statusLabel.text = "Shortening ..."
urlLoader.addEventListener(Event.COMPLETE, function(event:Event):void{
try{
var shortURL:String = XML(event.target.data).results.nodeKeyVal.shortUrl;
}catch(e:Error){}
});
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, function(event:IOErrorEvent):void{
});
urlLoader.load(req);
}
txt.addEventListener(Event.CHANGE, function(event:Event):void{
var results:Array = txt.text.match(pattern);
if(results.length > 0) {
for(var i:int=0; i< results.length; i++){
if(results[i].indexOf("bit.ly")==-1){
shortenURL(results[i], handler)
}
}
}
private function shortedURL(url:String , handler:Function):void{
var bitlyURL:String = "http://api.bit.ly/shorten?version=2.0.1&format=xml&longUrl="+escape(url)+"&login="+LOGIN+"&apiKey="+API_KEY;
var urlLoader:URLLoader = new URLLoader();
var req:URLRequest = new URLRequest(bitlyURL);
statusLabel.text = "Shortening ..."
urlLoader.addEventListener(Event.COMPLETE, function(event:Event):void{
try{
var shortURL:String = XML(event.target.data).results.nodeKeyVal.shortUrl;
}catch(e:Error){}
});
urlLoader.addEventListener(IOErrorEvent.IO_ERROR, function(event:IOErrorEvent):void{
});
urlLoader.load(req);
}
Parsed in 0.035 seconds, using GeSHi 1.0.8.4
נראה מבטיח, אבל מצד שני נראה כאילו חסר קוד, זה לא עובד (שאת זה אני לא מבין למה) וגם יש טעויות תחביר.
אני בדיוק עכשיו קורא על JSON ומנסה להבין איך להסתדר עם זה, סביר להניח שאני לא אצליח (
) אז אם מישהו יכול להושיט יד (ז"א קוד) ולעזור, אני אשמח!(התיעוד של bitly נמצא כאן:
http://code.google.com/p/bitly-api/wiki ... umentation
וזה יופי של תיעוד, אם יודעים כמובן איך להתעסק עם JSON בAS3.)
תודה רבה!
חדשות