Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Ошибка 1046: Type was not found or was not a compile-time constant (http://www.flasher.ru/forum/showthread.php?t=207379)

ZackMercury 14.04.2014 15:05

Я же просто сказал дописать new перед sperm().

Потом, проверьте линк клипа, чтобы совпадал(если он у вас в библиотеке).
Если совпадает, то всё должно работать.

Добавлено через 23 минуты
Что-то мне подсказывает, что в библиотеке у вас стоит линк sperma.

klevec 14.04.2014 17:13

Цитата:

Сообщение от caseyryan (Сообщение 1163576)
Вариантов тут может быть 2:
1) Класс лежит не в корневой директории, и его нужно импортировать
2) Название класса написано не правильно

Ни то, ни другое.
Быть может импорт конфликтует как-то друг с другом? (сорри, если вопрос тупой)

Добавлено через 6 минут
Цитата:

Сообщение от SuriTheAngel (Сообщение 1163585)
Я же просто сказал дописать new перед sperm().

Потом, проверьте линк клипа, чтобы совпадал(если он у вас в библиотеке).
Если совпадает, то всё должно работать.

Добавлено через 23 минуты
Что-то мне подсказывает, что в библиотеке у вас стоит линк sperma.

http://cs619328.vk.me/v619328459/2824/0F6uNu-UDLo.jpg

Код AS1/AS2:

function sp (e:Event) {
        //сперма
var sperma = new sperm();
sperma.x = Math.random()*600;
sperma.y = 100;
sperma.xmov = Math.random ()*2-1;
sperma.ymov = 3+ Math.random ()*6;
addChild(sperma);
}


Rivexe 14.04.2014 17:23

Не быстрее было бы уже исходник прикрепить и проверить что у вас не так?

klevec 14.04.2014 18:49

Вложений: 1
Цитата:

Сообщение от Rivexe (Сообщение 1163596)
Не быстрее было бы уже исходник прикрепить и проверить что у вас не так?

Прикрепил

caseyryan 14.04.2014 18:50

Самый простой вариант, в линковке написать не sperm, а Sperm
ну и код, соответственно заменить на этот:
Код AS3:

var sperma:Sperm = new Sperm();
sperma.x = Math.random()*600;
sperma.y = 100;
sperma.xmov = Math.random ()*2-1;
sperma.ymov = 3+ Math.random ()*6;
addChild(sperma);

Иначе без этого:
Цитата:

Не быстрее было бы уже исходник прикрепить и проверить что у вас не так?
можно будет гадать хоть до посинения

klevec 14.04.2014 22:38

Цитата:

Сообщение от caseyryan (Сообщение 1163608)
Самый простой вариант, в линковке написать не sperm, а Sperm
ну и код, соответственно заменить на этот:
Код AS3:

var sperma:Sperm = new Sperm();
sperma.x = Math.random()*600;
sperma.y = 100;
sperma.xmov = Math.random ()*2-1;
sperma.ymov = 3+ Math.random ()*6;
addChild(sperma);

Иначе без этого:

можно будет гадать хоть до посинения

Тогда 1180 ошибка вылезает.

Я же залил файл в предыдущем сообщении.

caseyryan 14.04.2014 23:16

Цитата:

Тогда 1180 ошибка вылезает.
И что это значит? Вряд ли тут есть те, кто по кодам ошибок сразу все определяет. Я лично вообще не запоминаю эти коды. Для меня важен только текст ошибки

п.с. не открывается этот файл. Нужно под более старую версию. Хотя бы под CS5.
Не знаю способна ли Flash CC в нее сохранить, предполагаю, что нет

klevec 14.04.2014 23:33

Вложений: 1
Цитата:

Сообщение от caseyryan (Сообщение 1163645)
И что это значит? Вряд ли тут есть те, кто по кодам ошибок сразу все определяет. Я лично вообще не запоминаю эти коды. Для меня важен только текст ошибки

п.с. не открывается этот файл. Нужно под более старую версию. Хотя бы под CS5.
Не знаю способна ли Flash CC в нее сохранить, предполагаю, что нет


1180: Call to a possibly underfined method Sperm
(line 23)

Код AS1/AS2:

import flash.events.KeyboardEvent;
import flash.events.Event;
 
var up:Boolean = false;
var down:Boolean = false;
var left:Boolean = false;
var right:Boolean = false;
var kadr = 0;
 
var board = {};
board.clip = egg;
board.speed = 10;
board.w = board.clip.width;
board.h = board.clip.height;
 
stage.addEventListener (KeyboardEvent.KEY_DOWN, kd);
stage.addEventListener (KeyboardEvent.KEY_UP, ku);
stage.addEventListener (Event.ENTER_FRAME, ef);
stage.addEventListener (Event.ENTER_FRAME, sp);
 
function sp (e:Event) {
        //сперма
var sperma = new Sperm();
sperma.x = Math.random()*600;
sperma.y = 100;
sperma.xmov = Math.random ()*2-1;
sperma.ymov = 3+ Math.random ()*6;
addChild(sperma);
}
 
function kd (e:KeyboardEvent) {
        //trace(e);
        if (e.keyCode==38) {
                up = true;
        }
        if (e.keyCode==40) {
                down = true;
        }
}
 
function ku (e:KeyboardEvent) {
        if (e.keyCode==38) {
                up = false;
        }
        if (e.keyCode==40) {
                down = false;
        }
}
 
//алгоритм движения яйцеклетки
function board_player () {
        if (up) {
                if ((board.clip.y - board.h/2) > wall_up.y) {
                        board.clip.y -= board.speed;
                        if (board.clip.y - board.h/2 < wall_up.y) {
                                board.clip.y = wall_up.y + board.h/2;
                        }
                }
        }
        if (down) {
                if ((board.clip.y + board.h/2) < wall_down.y) {
                        board.clip.y += board.speed;
                        if (board.clip.y + board.h/2 > wall_down.y) {
                                board.clip.y = wall_down.y - board.h/2;
                        }
                }
        }
}
 
function ef (e:Event) {
board_player ();
}


При написании var sperma:Sperm = new Sperm(); - выдаёт ещё пару ошибок сверху к этому.

Хз. Залил без компрессии файл ещё вот.

Rivexe 14.04.2014 23:49

Цитата:

Сообщение от klevec (Сообщение 1163607)
Прикрепил

Все оказалось намного проще. У вас на сцене находится объект sperm у которого в Properties в Instance name прописано "sperm". Из-за этого и был "конфликт". Просто удалите instance name, если он вам не нужен или задайте другое имя не совпадающие с именем класса.

А по поводу 1180 ошибки - в коде вы поменяли имя класса на "Sperm" а в библиотеке в ActionScript Linkage все равно оставили старое имя класса "sperm".

klevec 15.04.2014 00:00

Цитата:

Сообщение от Rivexe (Сообщение 1163651)
Все оказалось намного проще. У вас на сцене находится объект sperm у которого в Properties в Instance name прописано "sperm". Из-за этого и был "конфликт". Просто удалите instance name, если он вам не нужен или задайте другое имя не совпадающие с именем класса.

А по поводу 1180 ошибки - в коде вы поменяли имя класса на "Sperm" а в библиотеке в ActionScript Linkage все равно оставили старое имя класса "sperm".

Всё, я понял. )
Спасибо огромное!


Часовой пояс GMT +4, время: 05:39.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.