PDA

Просмотр полной версии : override adobe flash ide


stweet
13.10.2011, 14:48
// не могу понять как сделать во адоб флеш "override" ай нид хелп парни!

override public function get width():Number
{
return super.width;
}

override public function set width(value:Number):void
{
super.width = value;
}

// 1114: The public attribute can only be used inside a package.
// чёт ни фига не понял, а когда я создаю мувик на стейдже, он что за пределами пакета?

Inet_PC
13.10.2011, 14:50
Код в кадре - это просто функция, а не член класса. Так сделать не получится. Не пишите в кадрах.

Добавлено через 2 минуты
Весь код, который Вы в кадре написали, флеш засовывает (сам) в какой-то метод. Примерно так:

private function onFrame1Handler():void
{
//Здесь весь код из кадра номер 1
}

Соответственно получается:

private function onFrame1Handler():void
{
//Здесь весь код из кадра номер 1
override public function set width(value:Number):void
{
super.width = value;
}
}
А вот этот код и не получается скомпилить.

stweet
13.10.2011, 14:54
for (var i:int = 0; i < allelements.length; i ++) {

var n:Elements = new Elements();
n.init(150, allelements[i]);
addChild(n);

allelements[i] = n;
}


т.е. "Element" это не класс получается?

Добавлено через 1 минуту
хм, ясно, а как тогда переопределять методы?

Inet_PC
13.10.2011, 14:56
т.е. "Element" это не класс получается?
Это Класс.

Добавлено через 1 минуту
хм, ясно, а как тогда переопределять методы?
Сделать, чтобы Element наследовался не от MovieClip, а от Вашего класса. В свойствах симвала пропишите, от кого класс наследуется, и внутри этого класса сможете переписать свойства.

Добавлено через 2 минуты
В Symbol Properties есть поле BaseClass, по умолчанию там flash.display.MovieClip

stweet
13.10.2011, 15:01
В Symbol Properties есть поле BaseClass, по умолчанию там flash.display.MovieClip

так и сделано.

ладно, вероятно зря поднял тему.
Изначально думал сделать так

if (arr[i] != menu) yPos += arr[i].height; else yPos += arr[i].heightElement;

ну, что бы не париться, вышло что думал правильно =)

и всё равно спасибо, хоть знать буду, а то в этом адобе чёрт ногу сломит.

Inet_PC
13.10.2011, 15:03
так и сделано.
Там нужно прописать Ваш класс, наследующийcя от MovieClip.
if (arr[i] != menu) yPos += arr[i].height; else yPos += arr[i].heightElement;
Тут кстати ошибка)

Inet_PC
13.10.2011, 15:07
Вот пример.

stweet
13.10.2011, 15:16
Тут кстати ошибка)

да, и где же?

За исходник спасибо конечно, но я как бэ, понял что нужно делать.

Inet_PC
13.10.2011, 15:16
Точка с запятой перед else

stweet
13.10.2011, 15:18
Точка с запятой перед else

уверен что ни чего не путаешь?

Inet_PC
13.10.2011, 15:22
Естесственно. У Вас это компилится? У меня нет. Не одного варианта с точкой запятой перед else. (http://help.adobe.com/en_US/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7fce.html)
Таки работает, сори. Не работало бы, если бы, были фигурные скобки...

stweet
13.10.2011, 15:44
for (var i:int = needSum; --i > 0) if ((i < one_step)?one_ste:two_step > Math.round(Math.random()*limit)) tmp = 1; else tmp = 2;
// Заметьте, ни одного блока.

Inet_PC
13.10.2011, 15:49
// Заметьте, ни одного блока.
Неее такое читать невозможно, имхо. Я лучше по старинке)