Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.10.2014, 17:45
WSW вне форума Посмотреть профиль Отправить личное сообщение для WSW Найти все сообщения от WSW
  № 1  
Ответить с цитированием
WSW

Регистрация: Oct 2014
Сообщений: 5
По умолчанию Отсутствие графики в браузерном тестировании

Доброго времени суток.
Суть кода - загружает картинку в рамочке. Позволяет мышкой прокручивать (до рамки), роликом мышки масштабировать изображение.
При запуске во Adobe Flash CS6 код исполняется великолепно.
При запуске в браузере нет графики.
Цель - выявить причину.
Код:
package  {
	//http://cs623426.vk.me/v623426204/3556/pKJTdrHkvio.jpg
	//import flash.display.Sprite;
	//import flash.display.Bitmap;
	//import flash.display.Shape;
	//import flash.events.MouseEvent;
	import flash.geom.Matrix;
	import flash.net.URLRequest;
	//import flash.events.*;
	import flash.display.*;
	//import flash.text.*;
	import flash.events.*;	
	import flash.media.Sound;
	import flash.media.SoundChannel;
	import flash.utils.Timer;
	
	public class CastleInterface extends Sprite {
		//private static var _map_Bitmap:ImportedImage1;
		private var mapCont:Sprite;
		private var mapMask:Shape;
		private var border:Shape;
		private var center:Shape;
		var size:int;
		var CityBitmapLoader:Loader;
		var CityBitmap:Bitmap;
		
		
		public function CastleInterface() {
			
			//const IMAGE_URL:String = "http://**********/58412586/image.png";
			const IMAGE_URL:String = "http://**********/58412619/image.png";
 			CityBitmapLoader = new Loader();
			CityBitmapLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, CityBitmapLoader_complete);
			CityBitmapLoader.load(new URLRequest(IMAGE_URL));
			/*addChild(romeImageBitmap);
			var romeImageData:RomeImage = new RomeImage();
			var romeImageBitmap:Bitmap = new Bitmap(romeImageData);
			addChild(romeImageBitmap);*/

			//var mapBitmap:Bitmap ;//= new Bitmap(romeImageData); 
			//addChild(mapBitmap);
			mapCont = new Sprite();
			//mapCont.addChild(CityBitmap);
			mapCont.x=0;
			mapCont.y=0;
			addChild(mapCont);
			mapCont.addEventListener(MouseEvent.MOUSE_DOWN, downHandler);
			//
			mapMask = new Shape();
			mapMask.graphics.beginFill(0x0, 1);
			mapMask.graphics.drawRect(00, 00, 700, 550);
			mapMask.graphics.endFill();
			mapCont.mask = mapMask;
			//
			size = 350;
			border = new Shape();
			border.graphics.lineStyle(1, 0xff0000, 1);
			border.graphics.moveTo(0, 0);
			border.graphics.lineTo(700, 0);
			border.graphics.lineTo(700, 550);
			border.graphics.lineTo(0, 550);
			border.graphics.lineTo(0, 0);
			//
			center = new Shape();
			center.graphics.lineStyle(1, 0xff0000, 1);
			center.graphics.moveTo( 700/2+20, 550/2);
			center.graphics.lineTo( 700/2-20, 550/2);
			center.graphics.moveTo( 700/2, 550/2+20);
			center.graphics.lineTo( 700/2, 550/2-20);
			//
			this.addChild(mapCont);
			this.addChild(mapMask);
			this.addChild(border);
			this.addChild(center);
			//
			this.addEventListener(MouseEvent.MOUSE_WHEEL, wheelHandlerl);
		}
		private function wheelHandlerl(event:MouseEvent):void
		{
			
			trace("Wheel");
			/*var direction:int = event.delta/Math.abs(event.delta);
			var scale:Number = this.scale + direction*0.1;
			if (scale < minScale) scale = minScale;
			if (scale > maxScale) scale = maxScale;
			applyScale(scale, this.mouseX, this.mouseY);*/
			
			if (event.delta < 0)applyScale(0.95, this.mouseX, this.mouseY);//scaling(0.95);
			if (event.delta > 0)applyScale(1.05, this.mouseX, this.mouseY);//scaling(1.05);
			Check_The_Granici();
			trace("Scale = "+mapCont.scaleX);
			event.updateAfterEvent();
		}
		private function downHandler(event:MouseEvent):void
		{
			this.stage.addEventListener(MouseEvent.MOUSE_UP, upHandler);
			this.stage.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler);
			mapCont.startDrag();
		}
		private function moveHandler(event:MouseEvent):void
		{//mapMask
			Check_The_Granici();
			event.updateAfterEvent();
		}
		private function upHandler(event:MouseEvent):void
		{
			this.stage.removeEventListener(MouseEvent.MOUSE_UP, upHandler);
			this.stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveHandler);
			if (mapCont.x > 20 && mapCont.y > 20)
			{mapCont.x = 20 ; mapCont.y = 20;}
			
			if (mapCont.x+mapCont.width <350)
			mapCont.x = 350 - mapCont.width;
			mapCont.stopDrag();
		}
		private function Check_The_Granici()
		{
			if (mapCont.x > 00 )
			{mapCont.x = 00 ;}
			if (mapCont.y > 00)
			{mapCont.y = 00 ;}
			if (mapCont.x+mapCont.width <700)
			mapCont.x = 700 - mapCont.width;
			if (mapCont.y+mapCont.height <550)
			mapCont.y = 550 - mapCont.height;
		}
		/*private function scaling(Scale:Number)
		{
			if (Scale > 1 && mapCont.scaleX < 2)
			{mapCont.scaleX *= 1.05;
		    mapCont.scaleY *= 1.05;}
			else if (Scale < 1 && mapCont.scaleX > 0.65)
			{mapCont.scaleX *= 0.95;
		    mapCont.scaleY *= 0.95;
			}
			trace("Wheel. ScaleX = "+mapCont.scaleX);
		}*/
		private function applyScale(scale:Number, centerX:Number, centerY:Number):void
        {
			//супер пупер мего ограничение(защита)
			if (!((scale > 1 && mapCont.scaleX < 2) || (scale < 1 && mapCont.scaleX > 0.65)))
			return;
            // создаем новую матрицу трансформации
            var newMatrix:Matrix = new Matrix();
            // смещаем матрицу в точку,
            // относительно которой будет происходить масштабирование
            newMatrix.translate(-centerX, -centerY);
            // прменяем измененное(!!!) масштабирование
            newMatrix.scale(scale, scale);
            // возвращаем матрицу в исходное местоположение
            newMatrix.translate(centerX, centerY);
            //
            // получаем текущую матрицу трансформации
            var matrix:Matrix = mapCont.transform.matrix;
            // умножаем текущую матрицу на новую
            matrix.concat(newMatrix);
            //
            // применяем полученную матрицу трансформации
            mapCont.transform.matrix = matrix;
            //
            // запоминаем текущее значение скейла
        }
		
			function CityBitmapLoader_complete(evt:Event):void {
    			var bmp:Bitmap = CityBitmapLoader.content as Bitmap;
 		    	CityBitmap = new Bitmap(bmp.bitmapData);
    			CityBitmap.x = 0;
    			CityBitmap.y = 0;
    			CityBitmap.rotation = 0;
				bmp=null;
    			mapCont.addChild(CityBitmap);
				trace ("Width ="+CityBitmap.width);
				trace ("Scale ="+CityBitmap.scaleX);
			}
	}
	
}

Старый 08.10.2014, 22:07
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 2  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Подписывайтесь на события-ошибки. Наверно по секьюрити слетает.

Добавлено через 49 секунд
http://cs623426.vk.me/crossdomain.xml угу
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 09.10.2014, 08:38
WSW вне форума Посмотреть профиль Отправить личное сообщение для WSW Найти все сообщения от WSW
  № 3  
Ответить с цитированием
WSW

Регистрация: Oct 2014
Сообщений: 5
Честно говоря, я вас не понял. По какому секьюрити слетает? Что это за xml разметка?

Старый 09.10.2014, 08:47
WSW вне форума Посмотреть профиль Отправить личное сообщение для WSW Найти все сообщения от WSW
  № 4  
Ответить с цитированием
WSW

Регистрация: Oct 2014
Сообщений: 5
Дело в том, что я вижу лишь белый экран. И иногда замечаю единичное мигание (скорее всего, подгрузилась картинка, показалась и исчезла). Запускал в браузере Googl-а. В остальных браузерах ругается на конфеденциальность.

Добавлено через 38 секунд
Приведённый вами xml документ ни о чём не сказал

Старый 09.10.2014, 10:06
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 5  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Вы на свой сайт заливаете или во вконтактик?

Добавлено через 39 секунд
Картинку грузите со своего сайта или из вконтактика?
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 09.10.2014, 13:05
WSW вне форума Посмотреть профиль Отправить личное сообщение для WSW Найти все сообщения от WSW
  № 6  
Ответить с цитированием
WSW

Регистрация: Oct 2014
Сообщений: 5
Картинка загружается из rhgost по прямой ссылке.
Код рабочий (если запустить его в проэкте)

Старый 09.10.2014, 13:30
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 7  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Код рабочий, просто политика запрещает качать картинки. В ИДЕ это игнорируется. Почитайте про crossdomain.xml
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 09.10.2014, 14:08
WSW вне форума Посмотреть профиль Отправить личное сообщение для WSW Найти все сообщения от WSW
  № 8  
Ответить с цитированием
WSW

Регистрация: Oct 2014
Сообщений: 5
Если я вас верно понимаю, то скачивание запрещено политикой именно сайта-источника картинки, верно?
Но почему тогда картинка загружается при запуске не в браузере, а во флеш?
Насколько понял, это разрешение обмена данными между доменами.
Решение проблемы - создать сайт, где хранились бы нужные картинки, чтобы их можно было в любое время подгрузить в клиентской SWF?

Старый 09.10.2014, 16:48
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 9  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Ну можно прокси-сервер забацать. Или найти хак свежий для решения проблемы, вроде был в блогах, только не знаю работает он сейчас или нет
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:58.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:58.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.