1. #1

    Registered
    13/05/06
    Location
    Hoeselt
    Posts
    9,944
    iTrader
    48 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/72

    Actionscript + XML

    Hallo

    Ik probeer in Actionscript 3 iets te schrijven, zodat ik afbeeldingen van een bepaald persoon van op deviantart.com kan bekijken. Ik doe dit via de RSS-xml van op deviantart.com zelf. Nu, offline werkt alles perfect, maar wanneer ik mijn swf online zet, krijg ik problemen. De taakbalk van mijn browser vermeldt: bezig met laden van backend.deviantart.com maar voor de rest gebeurt er niets. Ik heb een sterk vermoeden dat dit met beveiliging te maken heeft, aangezien ik op 2 verschillende domains zit. Hoe kan dit euvel verholpen worden?
    Alvast bedankt.
    no votes  

  2. #2

    Registered
    13/05/06
    Location
    Hoeselt
    Posts
    9,944
    iTrader
    48 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/72
    *shameless bump*
    no votes  

  3. #3
    Lord_Palethorn's Avatar
    Registered
    09/03/03
    Location
    Kortenaken
    Posts
    387
    iTrader
    1 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/0
    euhm als ik mij niet vergis moet er op de server van deviantart ne crossdomain.xml aanwezig zijn die u toelating geeft, dus als ge da ni hebt.. vergeetet

    Kan wel zijnd at dit verandert is sinds AS3
    SUGARLAN V8.0 - 324 Gamers - 21 -23 Maart 2014 - Evenementenhal Tienen - www.sugarlan.com
    no votes  

  4. #4
    Dr_Evil's Avatar
    Registered
    07/07/03
    Location
    gent
    Posts
    201
    iTrader
    3 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/1
    idd crossdomain.xml anders is het een no-go...
    All the above are LIES

    check my flashden items here
    no votes  

  5. #5

    Registered
    13/05/06
    Location
    Hoeselt
    Posts
    9,944
    iTrader
    48 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/72
    Kan iemand me eens uitleggen wat zo'n crossdomain is en precies doet?
    no votes  

  6. #6
    Bigbuddha's Avatar
    Registered
    18/12/03
    Location
    Hasselt
    Posts
    1,758
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/5
    Cross-domain policy file staat op de server die je wil benaderen vanop een ander domein.

    Je kan niet zomaar xml, rss, ... gaan binnenhalen die niet van jouw zijn.

    De target server moet je toegang verlenen en jij moet dus daar vragen of je wel degelijk toegang krijgt.

    Meer info External data not accessible outside a Flash movie's domain
    Life before the computer: memory was something that you lost with age, a cursor used profanity and if you had a 3 1/2 inch floppy you just hoped nobody found out...
    no votes  

  7. #7

    Registered
    13/05/06
    Location
    Hoeselt
    Posts
    9,944
    iTrader
    48 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/72
    Merci Bigbuddha, da's best interessant. Maar er staat echter niet bij hoe ik dit concreet gebruik. Moet ik zelf nog een handeling uitvoering met die crossdomain? Of zoekt flashplayer er automatisch naar?
    no votes  

  8. #8
    Bigbuddha's Avatar
    Registered
    18/12/03
    Location
    Hasselt
    Posts
    1,758
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/5
    google, your friend

    loadPolicyFile

    System.security.loadPolicyFile() gebruik je dus in je swf om toegang te vragen aan het externe domein.
    Life before the computer: memory was something that you lost with age, a cursor used profanity and if you had a 3 1/2 inch floppy you just hoped nobody found out...
    no votes  

  9. #9

    Registered
    13/05/06
    Location
    Hoeselt
    Posts
    9,944
    iTrader
    48 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/72
    Bedankt Bigbuddha!
    Ik heb gemerkt dat deviantart een crossdomain heeft.
    Ik laad deze in, en toch krijg ik nog steeds niets te zien. Ik moet wel toevoegen dat ik niet alleen een xml, maar ook afbeeldingen op deze manier willen binnenkrijgen. Gaat dit? Of heb ik hiervoor weet een beveilingscheck nodig?
    no votes  

  10. #10
    Bigbuddha's Avatar
    Registered
    18/12/03
    Location
    Hasselt
    Posts
    1,758
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/5
    normaal gezien zou dit geen probleem mogen geven. Anders gewoon even je basis code posten, dan kunnen we het bekijken.
    Life before the computer: memory was something that you lost with age, a cursor used profanity and if you had a 3 1/2 inch floppy you just hoped nobody found out...
    no votes  

  11. #11

    Registered
    13/05/06
    Location
    Hoeselt
    Posts
    9,944
    iTrader
    48 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/72
    Dit is de crossdomain.xml van deviantart:
    Code:
    <cross-domain-policy>
    <allow-access-from domain="*.deviantart.com"/>
    </cross-domain-policy>
    en dit is de code. (hou er rekening mee dat dit een testje is en dat 't ook niet ordelijk en volledig correct is. Ik maak altijd een testapplicatie vooraleer ik aan het echte project begin. Misschien niet de beste workflow, maar 't onthoudt wel beter. Ook heb ik gewoon een random user van de deviantart mainpage gebruikt.
    Code:
    //DEVIANT ART TEST
    
    //VARS
    var Path:URLRequest = new URLRequest("http://backend.deviantart.com/rss.xml?q=gallery%3Atickledpinky%2F748594&type=deviation&offset=0");
    var Load:URLLoader = new URLLoader();
    var Media:Namespace = new Namespace("http://search.yahoo.com/mrss/");
    
    var xml:XML = new XML();
    var xmlList:XMLList = new XMLList();
    
    var sprt:Sprite = new Sprite()
    var firstLoad:Boolean = true;
    
    //DEVIANTART PERMISSION
    Security.loadPolicyFile("http://www.deviantart.com/");
    
    //COMMONS SETS
    myList.addEventListener(Event.CHANGE, changeImage);
    Load.addEventListener(Event.COMPLETE, addFiles);
    Load.load(Path);
    
    //FUNCTIONS
    function addFiles(e:Event):void
    {
    	sprt.x = 700;
    	sprt.y = 10;
    	stage.addChild(sprt);
    	
    	xml = XML(e.target.data);
    	xmlList = xml.channel.item;
    	for(var i:Number = 0; i<xmlList.length(); i++)
    	{
    		//trace(xmlList[i].title);
    		//trace(xmlList[i].Media::content.@url[0]);
    		myList.addItem({data:xmlList.Media::content.@url[i][0], 
    					   label:xmlList.Media::content.@url[i][0]});
    	}
    }
    
    function changeImage(e:Event):void
    {	
    	//trace(myList.selectedItem.data);
    	var loader:Loader = new Loader()
    	loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadImage)
    	loader.load(new URLRequest(myList.selectedItem.data));
    }
    function loadImage(e:Event):void
    {
    	//var img:Bitmap = new Bitmap(
    	sprt.addChild(e.target.content);
    }
    no votes  

  12. #12
    Bigbuddha's Avatar
    Registered
    18/12/03
    Location
    Hasselt
    Posts
    1,758
    iTrader
    5 (100%)
    Mentioned
    0 Post(s)
    Reputation
    1/5
    <allow-access-from domain="*.deviantart.com"/>

    Dit wil zeggen dat hij enkel vanop deviant art connecties toelaat dus geen publieke connectie. Eigenlijk laat deviantart geen externe connecties toe dus.
    Life before the computer: memory was something that you lost with age, a cursor used profanity and if you had a 3 1/2 inch floppy you just hoped nobody found out...
    no votes  

  13. #13

    Registered
    13/05/06
    Location
    Hoeselt
    Posts
    9,944
    iTrader
    48 (100%)
    Mentioned
    0 Post(s)
    Reputation
    0/72
    Bah. ok, bedankt Bigbuddha, 't was zeer interessant.
    no votes  

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  

Log in

Log in