Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   override adobe flash ide (http://www.flasher.ru/forum/showthread.php?t=169853)

stweet 13.10.2011 14:48

override adobe flash ide
 
Код AS3:

 
// не могу понять как сделать во адоб флеш "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 минуты
Весь код, который Вы в кадре написали, флеш засовывает (сам) в какой-то метод. Примерно так:
Код AS3:

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

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

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

А вот этот код и не получается скомпилить.

stweet 13.10.2011 14:54

Код AS3:

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

Цитата:

Сообщение от Inet_PC (Сообщение 1038874)
В Symbol Properties есть поле BaseClass, по умолчанию там flash.display.MovieClip

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

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

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

Вложений: 1
Вот пример.

stweet 13.10.2011 15:16

Цитата:

Сообщение от Inet_PC (Сообщение 1038878)
Тут кстати ошибка)

да, и где же?

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

Inet_PC 13.10.2011 15:16

Точка с запятой перед else

stweet 13.10.2011 15:18

Цитата:

Сообщение от Inet_PC (Сообщение 1038887)
Точка с запятой перед else

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


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

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