public MySprite1() { // http://www.adobe.com/livedocs/flash/9.0/ActionScriptLangRefV3/flash/display/Loader.html InternalLoadTargetContent = TargetContent => { this.OrphanizeChildren(); // read more: http://www.senocular.com/flash/tutorials/contentdomains/ Security.allowDomain("*"); Security.allowInsecureDomain("*"); //Security.loadPolicyFile("http://www.youtube.com/crossdomain.xml"); // http://code.google.com/apis/youtube/flash_api_reference.html // http://code.google.com/p/gdata-samples/source/browse/trunk/ytplayer/actionscript3/com/google/youtube/examples/AS3Player.as var ldr = new Loader(); var urlReq = new URLRequest(TargetContent); var ctx_app = ApplicationDomain.currentDomain; var ctx_sec = SecurityDomain.currentDomain; if (TargetContent.StartsWith("http://www.youtube.com/")) { // http://www.youtube.com/crossdomain.xml ctx_app = null; ctx_sec = null; // http://www.zedia.net/2010/using-the-actionscript-3-youtube-api/ DoplayVideo = delegate { ldr.content.playVideo(); }; DoloadVideoById = (id, s, q) => { ldr.content.loadVideoById(id, s, q); }; Action <Event> onReady = e => { if (VideoPlayerReady != null) { VideoPlayerReady(); } #if JSC_FEATURE_dynamic dynamic player = ldr.content; player.setSize(160, 120); #endif ldr.content.setSize(160, 120); }; ldr.contentLoaderInfo.init += delegate { ldr.content.addEventListener("onReady", onReady.ToFunction(), false, 0, false); }; } ldr.contentLoaderInfo.complete += delegate { if (Ready != null) { Ready(); } }; //ldr.mouseChildren = false; var ctx = new LoaderContext(true, ctx_app, ctx_sec); ldr.load(urlReq, ctx); var sprite2 = new Sprite { z = 0.001 }.AttachTo(this); sprite2.graphics.drawRect(0, 0, 100, 100); var t = new Timer(1000 / 60); t.timer += delegate { var x = sprite2.x; var y = sprite2.y; sprite2.transform.matrix3D.appendTranslation(-x, -y, 0); sprite2.transform.matrix3D.appendRotation(0.01, Vector3D.Y_AXIS); sprite2.transform.matrix3D.appendRotation(0.02, Vector3D.X_AXIS); sprite2.transform.matrix3D.appendTranslation(x, y, 0); }; t.start(); DoClean = delegate { ldr.content.GetChildren().Where(k => k.GetType().Name == "InfoPanel").ToArray().WithEach( k => k.Orphanize() ); }; ldr.AttachTo(sprite2); var Inspect = default(Action <DisplayObject, XElement>); Inspect = (Target, Journal) => { var SourceType = Target.GetType(); var n = new XElement(SourceType.Name); n.Add(new XAttribute("Namespace", SourceType.Namespace)); SourceType.BaseType.With( BaseType => n.Add(new XAttribute("BaseType", BaseType.FullName)) ); Journal.Add(n); (Target as DisplayObjectContainer).With( Container => { for (int i = 0; i < Container.numChildren; i++) { Inspect(Container.getChildAt(i), n); } } ); }; DoInspect = delegate { var doc = new XElement("Inspection"); // SecurityError: Error #2121: Security sandbox violation: Loader.content: http://localhost:26925/assets/LoadExternalFlashComponent.Application/LoadExternalFlashComponent.Components.MySprite1.swf cannot access http://sketch.odopod.com/flash/OdoSketch.swf?sketchURL=/sketches/231498.xml&userURL=/users/21416&bgURL=/images/bigbg.jpg&mode=embed. This may be worked around by calling Security.allowDomain. // at flash.display::Loader/get content() try { Inspect(ldr.content, doc); } catch (Exception exc) { var n = new XElement("error", exc.Message); doc.Add(n); } if (Inspecting != null) { Inspecting(doc); } }; }; LoadTargetContent(); }
public MySprite1() { // http://apiwiki.justin.tv/mediawiki/index.php/Live_Video_SWF_Documentation Security.allowDomain("*"); Security.allowInsecureDomain("*"); // http://apiwiki.justin.tv/mediawiki/index.php/Live_Video_SWF_Documentation //var TargetContent = "http://www.justin.tv/widgets/live_api_player.swf?video_height=480&video_width=640&consumer_key=YOUR_API_KEY"; var TargetContent = "http://www.justin.tv/widgets/live_api_player.swf?video_height=480&video_width=640"; var ldr = new Loader(); var urlReq = new URLRequest(TargetContent); var ctx_app = ApplicationDomain.currentDomain; var ctx_sec = SecurityDomain.currentDomain; ctx_sec = null; ctx_app = null; __api_play_live = delegate { }; ldr.contentLoaderInfo.complete += delegate { __api_play_live = channel => { ldr.content.api_play_live(channel); }; __api_play_live("nitro301"); //(ldr.content as dynamic).api.play_live("apidemo"); }; var ctx = new LoaderContext(true, ctx_app, ctx_sec); sprite2 = new Sprite { z = 0.02 }.AttachTo(this); sprite2.mouseChildren = false; ldr.AttachTo(sprite2); var t = new Timer(1000 / 60); t.timer += delegate { var x = sprite2.x; var y = sprite2.y; sprite2.transform.matrix3D.appendTranslation(-x, -y, 0); sprite2.transform.matrix3D.appendRotation(0.01, Vector3D.Y_AXIS); sprite2.transform.matrix3D.appendRotation(0.02, Vector3D.X_AXIS); sprite2.transform.matrix3D.appendTranslation(x, y, 0); }; t.start(); try { ldr.load(urlReq, ctx); } catch { } }