![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Modus ponens
|
Вот, есть такой пример:
private var _sceneWidth:Number = 500; override public function set width(value:Number):void { _sceneWidth = value; _isValidDisplay = false; } ... { var currentMousePoint:Point = new Point(viewport.containerSprite.mouseX, viewport.containerSprite.mouseY); if (!_isValidDisplay) { if (_gameMap) { _lastTransform = Matrix3D.clone(_gameMap.transform); _gameMap.destroy(); scene.removeChild(_gameMap); } trace("_lastTransform #1", _lastTransform); _gameMap = new Cube(_matList, 500, _sceneWidth, 16); scene.addChild(_gameMap); if (_lastTransform) { _gameMap.transform.calculateMultiply3x3(_lastTransform, _gameMap.transform); } trace("_lastTransform #2", _gameMap.transform); } else if (stage && _gameMap && _lastTransform) { _gameMap.transform.calculateMultiply3x3(_lastTransform, _gameMap.transform); //trace("_lastTransform #3", _gameMap.transform); } if (_isMouseDown) { trace("_isMouseDown", _lastTransform); var difference:Point = currentMousePoint.subtract(_previousMousePoint); var vector:Number3D = new Number3D(difference.x, difference.y, 0); var rotationAxis:Number3D = Number3D.cross(vector, FORWARD); rotationAxis.normalize(); var distance:Number = Point.distance(currentMousePoint, _previousMousePoint); var rotationMatrix:Matrix3D = Matrix3D.rotationMatrix(rotationAxis.x, -rotationAxis.y, rotationAxis.z, distance / 250); _gameMap.transform.calculateMultiply3x3(rotationMatrix, _gameMap.transform); } _previousMousePoint = currentMousePoint; super.onRenderTick(event); _isValidDisplay = true; } Когда ширина получает новое значение, выставляем флаг а в onRenderTick если флаг поднят, то нужно: - создать объект по-новой; - применить трансформацию. - опустить флаг. Почему-то на следующий тик трансформация объекта обнуляется =/ Вобщем, вопрост такой: как забиндить размер кубика к размеру контейнера? Добавлено через 4 часа 11 минут Вобщем, как решилось: вместо Понять почему нужно именно так - не получилось ![]()
__________________
Hell is the possibility of sanity |
![]() |
Часовой пояс GMT +4, время: 14:26. |
|
|
« Предыдущая тема | Следующая тема » |
| Теги |
| onrendertick , papervision , pvd |
|
|