2014-01-12 3 views
0

В настоящее время я испытываю проблему с AS3.AS3 - чертежи превышают диапазон студий

Я пытался нарисовать очень длинное изображение, размер которого превышает диапазон сцены. Проблема в том, что часть, которая превышает диапазон сцены, будет по-прежнему вырисовываться, поэтому, когда я тестирую свою программу с помощью flash или на веб-странице, результат выглядит не очень хорошо.

Я установил размер сцены 960 на 640, но детали, которые за пределами 960 и 640 (или даже x < 0 y < 0), по-прежнему нарисованы.

Есть ли способ скрыть части, выходящие за пределы диапазона, и только нарисовать объекты в пределах заданного этапа?

С моей точки зрения, ширина и высота сцены должны быть единственным видимым диапазоном, но я не знаю, почему вещи из этого диапазона все еще видны.

Btw Я использую FlashDevelop.

Большое спасибо.

+0

Хм. Еще в возрасте ActionScript 1 человек рисовал (размещал) объекты за пределами видимой части сцены, а окно браузера Flash не испортило веб-страницу. Я говорю, не волнуйтесь, но правильно назначайте размеры сцены на веб-странице для публикации. – Vesper

+0

Вы просматриваете это встроенное в html-файл? Это не должно быть проблемой, если вы. – bandaro

ответ

1

Это зависит в значительной степени от того, используете ли вы подход только для кода или используете среду IDE.

IDE Подход: В Flash Professional создайте новый слой на временной шкале сцены. Поместите прямоугольник того же размера, что и ступень в этом слое. Теперь щелкните правой кнопкой мыши слой и выберите «Маска». Заблокируйте слой.

Теперь убедитесь, что все остальные слои на временной шкале сцены расположены под этой маской. Перетащите слой чуть ниже маски, чтобы он выглядел слегка отступом в списке под маской.

код подход: (код от How to create masks in AS3? Приветствия Sappy и NEBU для кода..)

var maskShape:Shape = new Shape(); 
maskShape.graphics.beginFill(0x0); 
maskShape.graphics.drawRect(0, 0, 960, 640); 
maskShape.graphics.endFill(); 
addChild(maskShape); 
maskShape.x = 0; 
maskShape.y = 0; 

thingToMask.mask = maskShape; 
maskShape.visible = false; 
+0

Большое спасибо! Это решение (кодовый подход) просто решило мою проблему. – Melwell

Смежные вопросы