attachMovie в классе (Class)
Народ такая проблема. Помогите плиз.. Читал форум может не дочитал чего... :rtfm:
код класса: Код:
На _root - ложатся... ( _root.attachMovie ( pictype, "picc", levelx++ ); ) но ето не дело... чё тут делать??? |
Вы где-нибудь видели стандартный класс, у которого имя с маленькой буквы начинается? Так с какого перепоя вы называете классы с маленькой буквы?
В AS1/AS2 наследники MovieClip не создаются через оператор new. |
надо привязать мувик в библиотеке к классу buttonery - в поле Class укажите buttonery.
В поле identifier обзывайте как хотите и потом аттачте этот ваш мувик как обычно по его идентификатору ЗЫ: классы пишутся с большой буквы |
ну, или еще вариант:
клип, к которому аттачится клип из библиотеки (Р) должен существовать до того как вы вызываете на нем аттачМуви. Т.е. его нужно либо в класе либо вне, но создать и либо передавать классу ссылку на него либо ссылку на клип, в котором нужно его создать соответственно. |
Ларчик открыл таким кодом
Код:
class Buttonery extends MovieClip { а помог мне тут еще и trace (eval(nmm)); он выдал _level0.Buttonery_container1 _level0.Buttonery_container0 .... а я дописывал еще _root... и флеш, зараза, не глотнул Ларчик открылся! СПАСИБО ВСЕМ!!!! |
attachMovie между прочим возвращает ссылку на созданный клип, как и createEmptyMovieClip, а вы извращаетесь в eval, да ещё в AS2. Ужас.
|
Извращение...
Код:
class MyClass { |
не понял...
об"ясните тупоголовому процедурщику... в своем варианте я принимаю (передаю) аргументы function Buttonery (pictype:String, px:Number, py:Number, sx:Number, sy:Number) а тут вы принимаете (передаете) как аргумент мувик... как ето работает? если так написан код вроде как понимаю логику... но мне нужно передать в функцию-конструктор параметры имя клипа, ширинаX, ширинаY.... Разжуйте для тормоза .. код в создания екземпляра и код класса... А то фрагменты одни.... Ну начинал я с eval... ниче не сделать... Спасибо! |
Передается не клип, а ссылка на него. Т.е. все сложные объекты (не строки\числа\константы) не дублируются при операциях с ними.
Пример: Код:
var a:Object = {_a:100}; В твоем случае есть 2 нормальных пути реализации: 1. Залинковать класс к клипу в библиотеке, как предложил Fernando Costa 2. Создавать экземпляр класса с помощью оператора new. Я просто не люблю первый вариант. Но все равно попробую в двух словах объяснить. Дело в том, что MovieClip и все потомки этого класса не могут быть созданы с помощью оператора new потому что должны обязательно быть привязаными к родителю, и привязку эту никак в последствии поменять нельзя (что, слава богу, было изменено в АС3). Т.е. чтобы создать новый клип - есть методы класса MovieClip - .attachMovie(), .createEmptyMovieClip(), .duplicateMovieClip() - все они требуют в агрументах указывать на родителя, либо родитель находится по умолчанию в определенном месте по отношению к клипу, чей метод был вызван. Первый вариант (линкование класса к клипу в библиотеке) используется для: создания компонентов (по-другому просто не возможно). Или если дизайнер принес уже готовый UI, и нужно его только оживить (и не вдаваться в подробности где что находится, какой клип послке какого создавать и т.п. Т.е. програмер вообще не занимается графикой - она вся уже существует, нужно только добавить функционала. Если проект небольшой, графики не много, и уклон на красивости оформления, а не на функционал - это вплоне хороший способ. Так примерно и создается 90% всего, что вообще делается на флеш. Второй вариант - предпочтительнее для проектов, где нужна сложная програмная графика. Эволюция %) Код:
class Buttonery extends MovieClip { Код:
class Buttonery { Код:
class Buttonery { |
Часовой пояс GMT +4, время: 10:40. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.