Would this substitute for an Interrupt timer?
The whole idea is sound, but I would make a few changes:


as explained by Jot in a comment, you have to update previousMillis
inside the if statement. You have two choices:


set it to currentMillis, then OffTime will be the minimum time
between the pseudo-interrupts
increment it by a constant amount, which I would call period, then
this will be the average time between pseudo-interrupts; this is
more similar to how real timer interrupts work

add a constructor for:


making the period user-selectable
making the action of the timer user-selectable via a callback
initializing previousMillis



With those changes, the class will look like:

class Pseudo_Interrupt {
    unsigned long period;
    unsigned long previousMillis;
    void (*callback)();

public:
    Pseudo_Interrupt(void (*callback)(), unsigned long period)
        : period(period), previousMillis(millis()), callback(callback)
    { }

    void update()
    {  
        if (millis() - previousMillis &gt;= period)
        {
            callback();
            previousMillis += period;
        }
    }
};