![]() |
|
||||||||||
|
|||||
|
[+6 04.02.09]
Регистрация: Jan 2009
Сообщений: 54
|
Следующая ошибка TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать CubeWithDifferentSides_backAsset@42831f1 в flash.display.BitmapData.
at CubeWithDifferentSides()[C:\Documents and Settings\User\Рабочий стол\MagicCube\CubeWithDifferentSides.as:45] Код не работает,только чёрный экран на странице, при компиляции также ошибок не было! Но вот только дебагер замечает что что-то не так.. |
|
|||||
|
[+6 04.02.09]
Регистрация: Jan 2009
Сообщений: 54
|
и что мне делать?
проблему решать же надо! Добавлено через 2 минуты package { import flash.display.Bitmap; import flash.events.Event; import org.papervision3d.lights.PointLight3D; import org.papervision3d.materials.BitmapMaterial; import org.papervision3d.materials.shaders.PhongShader; import org.papervision3d.materials.shaders.ShadedMaterial; import org.papervision3d.materials.shaders.Shader; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.objects.primitives.Cube; import org.papervision3d.view.BasicView; [SWF(width="640", height="480", backgroundColor="#000000", frameRate="60")] public class CubeWithDifferentSides extends BasicView { [Embed(source="assets/back.jpg")] private var backAsset:Class; [Embed(source="assets/bottom.jpg")] private var bottomAsset:Class; [Embed(source="assets/front.jpg")] private var frontAsset:Class; [Embed(source="assets/left.jpg")] private var leftAsset:Class; [Embed(source="assets/right.jpg")] private var rightAsset:Class; [Embed(source="assets/top.jpg")] private var topAsset:Class; private var light:PointLight3D; private var cube:Cube; public function CubeWithDifferentSides() { var materialsList:MaterialsList = new MaterialsList(); light = new PointLight3D(); materialsList.addMaterial(new BitmapMaterial( new backAsset(), true ), "back"); materialsList.addMaterial(new BitmapMaterial( new bottomAsset(), true ), "bottom"); materialsList.addMaterial(new BitmapMaterial( new frontAsset(), true ), "front"); materialsList.addMaterial(new BitmapMaterial( new leftAsset(), true ), "left"); materialsList.addMaterial(new BitmapMaterial( new rightAsset(), true ), "right"); materialsList.addMaterial(new BitmapMaterial( new topAsset(), true ), "top"); cube = new Cube(materialsList, 500, 500, 500, 5, 5, 5); scene.addChild(cube); cube.addEventListener(InteractiveScene3DEvent.OBJECT_CLICK, onCubeClick); startRendering(); } override protected function onRenderTick(event:Event=null):void { cube.rotationY += (viewport.containerSprite.mouseX - cube.rotationY) * .1; cube.rotationX += (viewport.containerSprite.mouseY - cube.rotationX) * .1; renderer.renderScene(scene, camera, viewport); } private function onCubeClick(e:InteractiveScene3DEvent):void { switch(e.face3d.material.name) { case 'front': navigateToURL(new URLRequest('http://mySite.com/1')); break; case 'back': navigateToURL(new URLRequest('http://mySite.com/2')); break; case 'left': navigateToURL(new URLRequest('http://mySite.com/3')); break; case 'right': navigateToURL(new URLRequest('http://mySite.com/4')); break; } } } } |
|
|||||
|
вот здесь видимо вылазит ошибка и _русским языком_ вам пишет "не могу преобразовать CubeWithDifferentSides_backAsset@42831f1 в flash.display.BitmapData."
посмотрите, какие параметры (тип) принимает BitmapMaterial, и посмотрите что на самом деле вы туда передаёте |
|
|||||
|
[+6 04.02.09]
Регистрация: Jan 2009
Сообщений: 54
|
а как это сделать?
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
|
|
|||||
|
[+6 04.02.09]
Регистрация: Jan 2009
Сообщений: 54
|
спасибо господа
я решил, но вот теперь только ссылки на гранях не работают... Это почему? Добавлено через 31 минуту Может я чтоөто упустил, но щелчка по грани не происходит! Добавлено через 47 минут private function onCubeClick(event:MouseEvent):void { switch(e.face3d.material.name) { case 'back': navigateToURL(new URLRequest('http://ebay.com/')); break; case 'front': navigateToURL(new URLRequest('http://google.com/')); break; case 'left': navigateToURL(new URLRequest('http://myspace.com/')); break; case 'right': navigateToURL(new URLRequest('http://ebay.com/')); break; } } C:\Documents and Settings\User\Рабочий стол\MagicCube\CubeWithDifferentSides.as(72): col: 33 Error: Обращение несуществующего свойства e. switch(e.face3d.material.name) { |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Потому что внимательнее надо писать код и понимать, что этот код делает.
|
|
|||||
|
[+6 04.02.09]
Регистрация: Jan 2009
Сообщений: 54
|
ну я школьник я же учусь...
что следует использовать за место e.face3d.material.name |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Ну вы вообще понимаете, что делает этот switch? Что вообще это за обработчик, который вы написали?
Код нужно понимать, а не бездумно втыкать его куда-попало, даже не разбираясь в нём. |
![]() |
![]() |
Часовой пояс GMT +4, время: 19:05. |
|
|
« Предыдущая тема | Следующая тема » |
|
|