Показать сообщение отдельно
Старый 12.11.2010, 15:00
DEAFFF вне форума Посмотреть профиль Отправить личное сообщение для DEAFFF Посетить домашнюю страницу DEAFFF Найти все сообщения от DEAFFF
  № 7  
Ответить с цитированием
DEAFFF
 
Аватар для DEAFFF

Регистрация: Feb 2004
Адрес: Россия, В. Новгород
Сообщений: 255
Отправить сообщение для DEAFFF с помощью ICQ
Цитата:
Сообщение от zuxul Посмотреть сообщение
Млин, специально сейчас проверил.
Ваш код в первом посте работает как надо:
Код AS3:
package {
	import flash.display.Bitmap;
	import flash.display.BitmapData;
	import flash.display.Graphics;
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.display.StageQuality;
	import flash.events.Event;
	import flash.geom.Matrix;
	import flash.geom.Rectangle;
 
	public class Main extends Sprite {
 
		public function Main() {
			super();
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event):void {
			removeEventListener(Event.ADDED_TO_STAGE, init)
 
			var veryDifficultShape:Shape = new Shape();
			var gr:Graphics = veryDifficultShape.graphics;
			gr.lineStyle(1, 0xFF0000);
			gr.drawCircle(0, 0, 50);
 
			addChild(veryDifficultShape);
			veryDifficultShape.x = 100;
			veryDifficultShape.y = 100;
			// рисуем с хорошим качеством
			stage.quality = StageQuality.HIGH;
			var b:Rectangle = veryDifficultShape.getBounds(null);
			var bmd:BitmapData = new BitmapData(Math.ceil(b.width), Math.ceil(b.height), true, 0);
			bmd.draw(veryDifficultShape, new Matrix(1, 0, 0, 1, -b.x, -b.y));
			var bm:Bitmap = new Bitmap(bmd);
			bm.x = 300;
			bm.y = 100;
			addChild(bm);
			stage.quality = StageQuality.LOW;
		}
	}
}
))) прикол в том что так будет работать, потому что изначально у флешки стоит качество StageQuality.HIGH, вы его делаете StageQuality.HIGH(т.е. не меняете), затем после операции меняете на StageQuality.LOW. Все логично.

StageQuality походу дела "для кода" меняется тока с предыдущего кадра, т.е. если я установил качество StageQuality.HIGH - то оно будет применимо для кода тока в следующем кадре.

Вы попробуйте сделать так:
1. Запустить флешку, установив ей сразу качество StageQuality.LOW.
2. Затем подождать секунду-две.
3. Поставить качество StageQuality.HIGH затем закешировать и затем вернуть на качество StageQuality.LOW.

Мне надо в реал тайм делать перекеширование, если бы вопрос был только о предварительном кешировании я бы не писал этот пост.
__________________
зная будущее, хотя бы, на 10 минут вперед, можно покорить весь мир...