![]() |
Ошибка дебагера Помогите устранить
Следующая ошибка TypeError: Error #1034: Ошибка типа Coercion: невозможно преобразовать CubeWithDifferentSides_backAsset@42831f1 в flash.display.BitmapData.
at CubeWithDifferentSides()[C:\Documents and Settings\User\Рабочий стол\MagicCube\CubeWithDifferentSides.as:45] Код не работает,только чёрный экран на странице, при компиляции также ошибок не было! Но вот только дебагер замечает что что-то не так.. |
Если даже русский текст ошибки Вам непонятен, то тут ничем не поможешь.
|
и что мне делать?
проблему решать же надо! Добавлено через 2 минуты Код AS3:
|
Код AS3:
посмотрите, какие параметры (тип) принимает BitmapMaterial, и посмотрите что на самом деле вы туда передаёте |
а как это сделать?
|
Цитата:
|
спасибо господа
я решил, но вот теперь только ссылки на гранях не работают... Это почему? Добавлено через 31 минуту Может я чтоөто упустил, но щелчка по грани не происходит! Добавлено через 47 минут Код AS1/AS2:
C:\Documents and Settings\User\Рабочий стол\MagicCube\CubeWithDifferentSides.as(72): col: 33 Error: Обращение несуществующего свойства e. switch(e.face3d.material.name) { |
Потому что внимательнее надо писать код и понимать, что этот код делает.
|
ну я школьник я же учусь...
что следует использовать за место e.face3d.material.name |
Ну вы вообще понимаете, что делает этот switch? Что вообще это за обработчик, который вы написали?
Код нужно понимать, а не бездумно втыкать его куда-попало, даже не разбираясь в нём. |
конечно это оператор множественного перебора, который рассматривает ветвление по не скольким условиям, в данном случае их 4
Добавлено через 20 минут Пока не нашол ответа в апиай доках папера! В чём же есть ошибка? Понимаете я же использую материалы граней, но почему функция клика не работает? [ |
Цитата:
|
он перебирает имя материала, не Событие а именно имя материала
Добавлено через 1 час 17 минут у меня ошибка в коде выше и я её устранить самостоятельно не могу. Так как я не вижу в чём проблема |
Вы зачем-то изменили тип события и имя переменной, его содержащего. Зачем — непонятно. Естесственно, локальной переменной с именем «e» больше нет.
|
__etc
дело в том, что код, предложенный Obi впринципе правилен и программа собирается, но при тестировании продукта оказывается что ссылки не рабтают(не возможно кликнуть по какой-либо грани). Я стал менять не много код, но тщетно. Код AS3:
|
Значит можно сделать вывод, что обработчик не вызывается, либо нет поверхностей с такими именами. Да поможет вам trace.
|
Да я воспользовался trace
Результат: ничего.. Никакого текста. Можно сделать вывод, что обработчик не вызывается! Вопрос почему? Я такого нигде кроме Flash не видел, как ликвидировать эту мистику? |
А что и где вы трейсили?
|
Код AS3:
|
Ну и какой смысл в трейсе кейсов, когда в них раньше был navigateToURL, который не работает? Протрейсите само событие, поверхность, материал, имя материала.
|
trace на события клика - результат: ничего
Цитата:
? |
Боже мой, у вас же пришло событие, там есть ссылка на поверхность, у поверхности ссылка на материал. Разбирайтесь уже в коде, в конце-концов.
Я ковыряться с pv3d ради вашего кода не буду, ибо лень. |
ок
но вот только скажите такие странности часто встречаются во флеш? А то я Рубикодер |
Какие странности?
|
Эти!
Когда весь код правилен вроде бы? Лист статуса компилирования чист, а при использовании проекта замечается что ссылки не работают.. |
А что, руби такой крутой язык, что в состоянии понять, что от него хочет разработчик, предугадывает его действия и заранее вываливает ошибку? Если в коде нет синтаксической ошибки и нет ошибок при выполнении, это вовсе не означает, что он будет работать ровно так, как планировалось. А не работает он так, как планировалось, потому что разработчик (в данном случае вы) не до конца понимает суть кода, который пишет или не понимает, как работать с конкретным фреймворком. Код, написанный наобум, скорее всего работать не будет, о чём и свидетельствует данный топик.
|
о ужас .... _etc нужно вручить медаль ... я бы уже давно забил ...
вобщем по делу, что вам мешает разобратся в обьектах, на которые вы вешаете обработку событий, возможно что то их перекрывает, возможно сообщение ставится не правильно, ( хотя не пресдтавляю как это можно сделать ) да и вобще, как вам уже посоветовали, trace всемогущь и тут скорей не страности языка ,а странности вашего понимания мира :) ,персматрите свое мировозрение на програмирование .. . и еще поделу если хотите реальной помощи, приведите код обработчиков обьектов ,на которые вы ставите обработку событий ,тогда можно будет более подробно помочь, а так телепаты в отпуск ушли, когда вернутся не сказали :( |
вообще, у BitmapMaterial должен быть
bitmapMaterial.interactive = true; Проверьте, если заработает, напишите пожалуйста. Просто у меня такая же проблема, но bitmapMaterial.interactive = true; стоит, а event, гад, не вызывается. |
ПРИВОЖУ КОД СНОВА
Код AS3:
|
Даж не знаю. я бы
createShadedMaterial( new backAsset() ) заменил на var bitmapMaterial:BitmapMaterial = new BitmapFileMaterial("assets/smallgrid.png", true); bitmapMaterial.interactive = true; Можно использовать [Embed(source="assets/smallgrid.png")], тогда я бы делал materialsList.addMaterial(BitmapMaterial( new backAsset(), false), "back"); Я не уверен сейчас в суждениях ибо не проверял... но всё же... Вот ещё хорошие уроки: http://blog.tartiflop.com/first-steps-in-papervision3d/ |
спасибо, кстати
bitmapMaterial.interactive = true; никак не влияет на работу |
у меня у самого сейчас примерно та же проблема... в доках везде interactive = true;
А что его ставь, что нет, все равно у меня не срабатывает... хотя, если примеры из доков брать, то всё нормально... непонятно. :( |
то есть у тебя из доков примеры с кликами работают?
|
ага... сам не пойму почему так...
может ICQ, вместе разбираться бум... ;) |
можно
Ну я и говорю... Это мистика какая то.. |
ХАХАХА!!!!
Я кажись нашел нюанс...!!! viewport.interactive = true; у меня это из ReflectionView viewport.viewport.interactive = true; |
Обращаюсь к опытным людям!
Почему в этом коде не срабатывает клик по любой грани? Код AS3:
Как сделать клик во флеш? Вообщем привожу код простого зд объекта. Это простой куб с шестью грнаями. Вопрос как изменить этот код чтобы по каждой из шести граней можно было бы кликнуть и увидеть текст "Грань номер n работает!" ??? Код AS3:
|
onCubeClick InteractiveScene3DEvent а не MouseEvent.
|
Obi
дело в том что твой код с которым ты мне помог до этого момента, не работает Всё компилируется но клика нет. Я не знаю как эту мистику исправить, честно я не знаю. |
http://www.gotoandlearn.com/play?id=68 - видео урок, как делать куб с кликабельными плоскостями.
|
| Часовой пояс GMT +4, время: 01:06. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.