Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Igor Oliveira Coronel

SecurityError

Recommended Posts

Fala galera, beleza?

 

Seguinte, estou fazendo um flash pra aplicar efeito grayscale em uma lista de produtos... o swf recebe as imagens por flashvars, só q o problema é q as imagens estao em uma url externa... as imagens nem carregavam, agora eu criei o crossdomain e algumas carregam e outras não... alguem sabe o q pode ser?

 

o site -> http://local.snapsystems.com.br/

 

o erro -> SecurityError: Error #2122: Violação da área de segurança: LoaderInfo.content: http://local.snapsystems.com.br/DesktopModules/ListaImoveisLocal/js/imagem.swf não pode acessar http://snapbroker.local.snapsystems.com.br//Arquivos/Empreendimentos//QuintadaBaronesa/image_busca__c96bcb61-cf78-4004-ad1e-8ea07c2075d1.jpg. É exigido um arquivo de política, mas o indicador checkPolicyFile não estava definido quando esta mídia foi carregada.

at flash.display::LoaderInfo/get content()

at Images/onImageLoad()

 

meu as ->


package
{
	Security.allowDomain("http://snapbroker.local");
    Security.loadPolicyFile("http://snapbroker.local/crossdomain.xml");
	
	import flash.geom.Point;
	import flash.filters.ColorMatrixFilter;
	import flash.display.*;
	import flash.net.URLRequest;
	import flash.net.navigateToURL;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.text.*;
	import fl.motion.easing.*;
	import com.gskinner.motion.GTween;
	import flash.system.Security;

	public class Images extends MovieClip
	{

		
		private var _loader:Loader = new Loader();
		private var _imageUrl:String = '';
		private var _linkUrl:String = '';
		private var _titulo:String = null;
		private var _imageRGB:Bitmap;
		private var _imagePB:Bitmap;		
		private var _mcImagens:MovieClip = new MovieClip();
		private var _size:uint = 80;
		private var _border:Shape;
 

		// init
		public function Images()
		{
			_imageUrl = getFlashVars( 'imageUrl' ) != null ? getFlashVars( 'imageUrl' ) : _imageUrl;
			_linkUrl = getFlashVars( 'linkUrl' ) != null ? getFlashVars( 'linkUrl' ) : _linkUrl;
			_titulo = getFlashVars( 'titulo' ) != null ? getFlashVars( 'titulo' ) : null ;
			
			imageLoad();
			_loader.contentLoaderInfo.addEventListener( Event.COMPLETE, onImageLoad );
			
			stage.align = StageAlign.TOP_LEFT;
	        stage.scaleMode = StageScaleMode.NO_SCALE;
			
			bgPreto.width = stage.stageWidth;
			bgPreto.height = stage.stageHeight;			
		}
		
		// pega valores das flashvars
		public function getFlashVars( flashvar:String ):String
		{
			var flashvars:Object = LoaderInfo( this.root.loaderInfo ).parameters;
					
			return flashvars[ flashvar ];
		}
		
		// onload
		private function imageLoad():void
		{
			_loader.load( new URLRequest( _imageUrl ) );
		}
		
		// callback
		private function onImageLoad( e:Event ):void
		{
			// esconde grafico de loading
			loadingGraph.alpha = 0;
			
			// acessa e cria nova bitmap da resposta
			_imageRGB = new Bitmap( _loader.contentLoaderInfo.content[ 'bitmapData' ] );

			
			// duplica bitmap e transforma em preto e branco
			_imagePB = toBlackWhite( duplicateImage( _imageRGB ) );

			_imageRGB.x = ( stage.stageWidth - _imagePB.width ) / 2;
			_imageRGB.y = ( stage.stageHeight  - _imagePB.height ) / 2;		
			
			_imagePB.x = ( stage.stageWidth - _imagePB.width ) / 2;
			_imagePB.y = ( stage.stageHeight  - _imagePB.height ) / 2;		
			
			// setup do movieclip
			_mcImagens.buttonMode = true;
			_mcImagens.useHandCursor = true;	
			_mcImagens.mouseChildren = false;
			
			// adiciona imagem preto e branco ao movieclip
			_mcImagens.addChild( _imagePB );
			
			if ( _titulo != null )
				drawTitle( false );
			
			// adiciona movieclip ao palco
			addChild( _mcImagens );

			// binda eventos
			bindEvents();
		}
		
		// bind de eventos do movieclip
		private function bindEvents():void
		{
			_mcImagens.addEventListener( MouseEvent.CLICK, onClick );
			_mcImagens.addEventListener( MouseEvent.MOUSE_OVER, onMouseOver );
			_mcImagens.addEventListener( MouseEvent.MOUSE_OUT, onMouseOut );
		}
		
		// mouseover
		private function onMouseOver( e:MouseEvent ):void
		{
			_imageRGB.alpha = 0;

			_imageRGB.x = ( stage.stageWidth - _imageRGB.width ) / 2;
			_imageRGB.y = ( stage.stageHeight - _imageRGB.height ) / 2;

			_border = new Shape();
        	_border.graphics.lineStyle( 6, 0xFF0000, 1, true, LineScaleMode.NONE, CapsStyle.SQUARE, JointStyle.MITER );
        	_border.graphics.drawRect( 3, 3, stage.stageWidth - 6, stage.stageHeight - 6 );
			
			_mcImagens.addChild( _imageRGB );			
			_mcImagens.addChild( _border );			
			
			if ( _titulo != null )
				drawTitle( true );		
			
			fadeIn( _imageRGB );
		}
		
		// mouseout
		private function onMouseOut( e:MouseEvent ):void
		{
			_imagePB.alpha = 0;

			_imagePB.x = ( stage.stageWidth - _imagePB.width  ) / 2;
			_imagePB.y = ( stage.stageHeight - _imagePB.height  ) / 2;	
			
			
			_mcImagens.addChild( _imagePB );
			_mcImagens.removeChild( _border );
			
			if ( _titulo != null )
				drawTitle( false );
			
			fadeIn( _imagePB );
		}
		
		// click
		private function onClick( e:MouseEvent ):void
		{
			navigateToURL( new URLRequest( _linkUrl ), "_self" );
		}
		
		// transforma em preto e branco
		private function toBlackWhite( image:Bitmap ):Bitmap
		{
			const RED:Number = 1/3;
			const GREEN:Number = 1/2;
			const BLUE:Number = 1/3;
					
			var _bitmapdata:BitmapData = image.bitmapData;		
			var _matrixFilter:Array = [RED, GREEN, BLUE, 0, 0,RED, GREEN, BLUE, 0, 0, RED, GREEN, BLUE, 0, 0, 0, 0, 0, 1, 0];
			
			_bitmapdata.applyFilter( image.bitmapData, image.bitmapData.rect, new Point(), new ColorMatrixFilter( _matrixFilter ) );
		
			return image;
		}
		
		// desenha titulo
		
		
		private function drawTitle( over:Boolean ):void
		{
			
			// 110x29 FFF E41518 154
			var _textColor:uint = 0xFFFFFF;
			var _bgColor:uint = 0xE41518;	

			
			var _title:TextField = new TextField();
			var _background:Shape = new Shape();
			var _xPos = 0;
			var _yPos = 110;
			var _fontFormat = new TextFormat();
			var _font = 'Arial';			
			var _fontSize = 12;			
			
			_fontFormat.font = _font;
			_fontFormat.size = _fontSize;
			_fontFormat.color = !over ? _textColor : _bgColor;
			_fontFormat.bold = true;
			
			_title.width = 150;
			_title.text = _titulo;
			_title.multiline = true;
			_title.selectable = false;
			_title.wordWrap = true;
			_title.autoSize = TextFieldAutoSize.LEFT;
			_title.setTextFormat( _fontFormat );		
			_title.x = _xPos;
			_title.y = _yPos;
			
			_background.graphics.beginFill( over ? _textColor : _bgColor );
			_background.graphics.drawRect( _xPos, _yPos, _title.width, _title.height );
			_background.graphics.endFill();
			
				

		
			_mcImagens.addChild( _background );
			_mcImagens.addChild( _title );
			

			
			_title.addEventListener( MouseEvent.MOUSE_OVER, onTitleOver );
		}
		
		
		private function onTitleOver( e:MouseEvent ):void
		{
		}
		
		// transicao
		private function fadeIn( image:Bitmap ):void
		{
			var tweener:GTween = new GTween( image, 0.3 );
			
			tweener.setProperty( 'alpha', 1 );
			tweener.ease = Sine.easeInOut;
		}
		
		// duplica imagem
        private function duplicateImage( original:Bitmap ):Bitmap 
		{
            return new Bitmap( original.bitmapData.clone() );
        }		
	}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.