Просмотр полной версии : Проблема с _root.onEnterFrame=function ()
Обьясните пожалуйста, почему когда в классе пишешь или
_root.onEnterFrame=function () {
}
или
_root.onLoad = function() {
}
выдает ошибку - Этот оператор в определении класса недопустимо.
Как это решить?
dimaMJ, я как-то уже рассказывал, как можно организовать структуру игрушки:
Создаете основной класс, например, GameController и в конструктор его передаете ссылку на _root. Далее уже в классах используете эту ссылку, но не сам _root.
Создаете игровые слои — createEmptyMovieClip(...), в него ставите контент слоя, и на него же вешаете onEnterFrame, если это так необходимо.
Персонажа, врагов и динамические объекты на уровне лучше обновлять в одном методе, а не навешивать на каждого свой onEnterFrame.
Этот оператор в определении класса недопустимо.
Как это решить?
Плохое решение:
class MyClass {
function MyClass(){
_root.onEnterFrame = update;
}
function update(){
//...
}
}
Решение чуть получше:
class MyClass {
function MyClass(){
var d = _root.getNextHighestDepth();
_root.createEmptyMovieClip("___enterFrameCatcher_" + d, d).onEnterFrame = update;
}
function update(){
//...
}
}
Возможно я ошибаюсь в некоторых моментах, но, думаю, что идея ясна. Давно не писал классы на ас2.
То есть в update() создавать экземпляры и вызывать ф-ции, так?
Добавлено через 3 часа 40 минут
ну я даже вот так элементарно пробовал проверить работу. Только создал экземпляр класса в кадре и вызвал конструктор и ничего не выводит.
class Gameloader
{
function Gameloader(){
_root.onEnterFrame = function() {
trace ("Вызван обработчик onEnterFrame");
}
}
}
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.