Отсутствие графики в браузерном тестировании
Доброго времени суток.
Суть кода - загружает картинку в рамочке. Позволяет мышкой прокручивать (до рамки), роликом мышки масштабировать изображение.
При запуске во 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);
}
}
}
|